Создание Эльфов : Эльфостроение : Форум

Страница 199 из 211: « 1 ... 195 196 197 198 [199] 200 201 202 203 ... 211 »

 den_po:
21.12.11, 17:10
 SummerWood, вот из-за того, что некоторые такие идиоты занимаются написанием эльфов, среди некоторых пользователей бытует мнение, мол патчи стабильней эльфов

 SummerWood:
21.12.11, 17:10
 den_po,так и ожидал что ты так скажешь
увы ,но твоё мнение ошибочно
но я же не идиот =)
да,но где им прочитать как надо делать правильно?


[ Редактировано SummerWood в 21.12.11 16:14 ]

[ Редактировано SummerWood в 21.12.11 16:19 ]

 blacklizard:
21.12.11, 19:11
 
D3mon пишет:
den_po, стало чуть понятнее, спасибо!

У класса IShell есть метод:
Код:
int IShell_CreateInstance(PUUID cid, PUUID iid, void** pInterface);

отличается ли этот метод от функции CoCreateInstance ?

в прошивке встречается и такое, и такое использование..


if you dump IShell object, you can see the IShell_CreateInstance pointer store the address of CoCreateInstance

 SERGK393:
24.12.11, 14:55
 
SummerWood пишет:
в wiki не описаны функции
DispObject_SetRefreshTimer
DispObject_Show
DISP_DESC_SetOnRedraw
DISP_DESC_SetOnRefresh
можете подсказать как их использовать
и какие параметры за что отвечают?

А что тут блин догадываться?

DispObject_SetRefreshTimer - это таймер, выставляет паузу
DispObject_Show - показывает дисп обж, который относится к гуи, к дисп деск, ну итд.
DISP_DESC_SetOnRedraw - назначается функа, где можно рисовать
DISP_DESC_SetOnRefresh - это к первой функе, но тут как раз назначается функа к таймеру

Для начала надо простенький эльф сделать, перебрать все уроки, а потом спрашивать что то

 SummerWood:
30.12.11, 18:23
 КАК сделать чтобы гуй на полный экран рисовался,а то видно статусбар и софты

 D3mon:
30.12.11, 18:29
 SummerWood,
неужели так сложно найти исходники эльфов/патчей с таким гуи ????

Код:
GUIObject_SetStyle( gui, UI_OverlayStyle_TrueFullScreen );
GUIObject_SoftKeys_Hide( gui );


[ Редактировано D3mon в 30.12.11 18:55 ]

 den_po:
30.12.11, 18:49
 D3mon, не нужно использовать числа, нужно использовать константы из types.h. глянь UI_OverlayStyle_t

 albertnet3:
31.12.11, 04:37
 how to perform an action without restart in this type of gui.
I hope your help, thanks:)

I tried this way and reboot my phone:

Код: 
int action1()
{
 
    MessageBox(EMPTY_TEXTID,STR(" NofMany 1"),0, 1 ,5000,0);
  
    return (1);
}


int action2()
{

    MessageBox(EMPTY_TEXTID,STR(" NofMany 2"),0, 1 ,5000,0);
  
    return (1);
}


int action3()
{
 
    MessageBox(EMPTY_TEXTID,STR(" NofMany 3"),0, 1 ,5000,0);
  
    return (1);
}


int action4()
{
 
    MessageBox(EMPTY_TEXTID,STR(" NofMany 4"),0, 1 ,5000,0);
 
    return (1);
}

void onEnterSettings(BOOK *book,GUI* )
{
  MyBOOK *m_bk = (MyBOOK *)book;
u16 checked_table[4];
NOfMany_GetChecked( m_bk->nom , checked_table );

if(checked_table[0])

action1();

if(checked_table[1])

action2();

if(checked_table[2])

action3();

if(checked_table[3])

action4();

}

int CreateNofMany(void *r0, BOOK *book)
{
GUI_NOFMANY * nom = CreateNOfMany( book );
int sid[4];
sid[0]=STR( "texto 1" );
sid[1]=STR( "texto 2" );
sid[2]=STR( "texto 3" );
sid[3]=STR( "texto 4" );
NOfMany_SetTexts( nom , sid , 4 );
...
...
GUIObject_Softkey_SetAction(nom,ACTION_ACCEPT, onEnterSettings);
}


and this reboot my phone:

Код: 
typedef struct{
  int Estyle1;
  int Estyle2;
  int Estyle3;
  int Estyle4;
}FILE_DATA;

typedef struct{
  int is1;
  int is2;
  int is3;
  int is4; 
}MY_DATA;

typedef struct
{
  BOOK * book;
  GUI_NOFMANY * nom;
  FILE_DATA MY_DATA;
}MyBOOK;

int action1()
{
  if(GetChecked()==0){
    MessageBox(EMPTY_TEXTID,STR(" NofMany 1"),0, 1 ,5000,0);
   } 
    return (1);
}


int action2()
{
  if(GetChecked()==1){
    MessageBox(EMPTY_TEXTID,STR(" NofMany 2"),0, 1 ,5000,0);
    }
    return (1);
}


int action3()
{
  if(GetChecked()==2){
    MessageBox(EMPTY_TEXTID,STR(" NofMany 3"),0, 1 ,5000,0);
    }
    return (1);
}

int action4()
{
  if(GetChecked()==2){
    MessageBox(EMPTY_TEXTID,STR(" NofMany 4"),0, 1 ,5000,0);
    }
    return (1);
}

int GetChecked()
{
  int f;
  int ret=0;
  if ( (f = _fopen( FILE_PATH,FILE_NAME, FSX_O_RDONLY, FSX_S_IREAD|FSX_S_IWRITE, 0)) >=0 )
  {
    FILE_DATA *fd  = (FILE_DATA*)malloc(sizeof(FILE_DATA));
    memset (fd,0,sizeof(FILE_DATA));
    fread( f, fd, sizeof(FILE_DATA));
         if(fd->Estyle1==1)ret=0;
    else if(fd->Estyle2==1)ret=1;
    else if(fd->Estyle3==1)ret=2;
    else if(fd->Estyle4==1)ret=3;
    fclose (f);
    mfree(fd);
  }
  return ret;
}

void SetChecked(int level, BOOK*book)
{
    MyBOOK *m_bk = (MyBOOK *)book;
    int f;
    if ( (f = _fopen( FILE_PATH,FILE_NAME, FSX_O_RDONLY, FSX_S_IREAD|FSX_S_IWRITE, 0)) >=0 )
    {
      FILE_DATA *fd  = (FILE_DATA*)malloc(sizeof(FILE_DATA));
      memset (fd,0,sizeof(FILE_DATA));
      fread( f, fd, sizeof(FILE_DATA));
      m_bk->MY_DATA=*fd;
      fclose (f);
      mfree(fd);
    } 
    if (level==0)
    {
      m_bk->MY_DATA.Estyle1=1;
      m_bk->MY_DATA.Estyle2=0;
      m_bk->MY_DATA.Estyle3=0;
      m_bk->MY_DATA.Estyle4=0;
    }
    else if(level==1)
    {
      m_bk->MY_DATA.Estyle1=0;
      m_bk->MY_DATA.Estyle2=1;
      m_bk->MY_DATA.Estyle3=0;
      m_bk->MY_DATA.Estyle4=0;

    }
    else if(level==2)
    {
      m_bk->MY_DATA.Estyle1=0;
      m_bk->MY_DATA.Estyle2=0;
      m_bk->MY_DATA.Estyle3=1;
      m_bk->MY_DATA.Estyle4=0;
    }
   else if(level==3)
    {
      m_bk->MY_DATA.Estyle1=0;
      m_bk->MY_DATA.Estyle2=0;
      m_bk->MY_DATA.Estyle3=0;
      m_bk->MY_DATA.Estyle4=1;
    }
        
    if ( (f = _fopen( FILE_PATH,FILE_NAME, FSX_O_WRONLY, FSX_S_IREAD|FSX_S_IWRITE, 0)) >=0 )
    {
      FILE_DATA *fd  = (FILE_DATA*)malloc(sizeof(FILE_DATA));
      memset (fd,0,sizeof(FILE_DATA));    
      *fd=m_bk->MY_DATA;
      fwrite(f,fd,sizeof(FILE_DATA));
      fclose (f);
      mfree(fd);
    }    
}

void onEnterSettings(BOOK *book,GUI* )
{
  MyBOOK *m_bk = (MyBOOK *)book;
u16 checked_table[4];
NOfMany_GetChecked( m_bk->nom , checked_table );

if(checked_table[0])

SetChecked(0,book);

if(checked_table[1])

SetChecked(1,book);

if(checked_table[2])

SetChecked(2,book);

if(checked_table[3])

SetChecked(3,book);

}

{
GUI_NOFMANY * nom = CreateNOfMany( book );
int sid[4];
sid[0]=STR( "texto 1" );
sid[1]=STR( "texto 2" );
sid[2]=STR( "texto 3" );
sid[3]=STR( "texto 4" );
NOfMany_SetTexts( nom , sid , 4 );
...
...
GUIObject_Softkey_SetAction(nom,ACTION_ACCEPT, onEnterSettings);
}

if I press softkey action accept or action "Yes" in the question save change reboot my phone.
I hope your help, thanks:)

 ZverUA:
08.01.12, 02:42
 Что более оптимально использовать? Ловушку для всех событий (NIL_EVENT) или таймер?

 mmcorp:
08.01.12, 18:12
 ZverUA, в плане производительности - таймер. Но тут зависит от поставленной задачи, есть такие, где оптимальнее поставить ловушку на событие.
Страница 199 из 211: « 1 ... 195 196 197 198 [199] 200 201 202 203 ... 211 »

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=2479&start=1980

© 2005-2018 supertrubka.org