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

Страница 51 из 211: « 1 ... 47 48 49 50 [51] 52 53 54 55 ... 211 »

 axJeSSter:
29.07.08, 20:41
 Дорогие эльфмейкеры, не подскажите как создать список объектов(но не книг) как наприер в букмене но без вкладок. Функции я знаю, какие надо, а вот как их использовать - нет. Напишите пожалуйста небольшой пример. Буду очень признателен.

 UltraShot:
29.07.08, 20:52
 axJeSSter
я тут для своей маленькой программки шаблончики делал:
Код: 
//Шаблон списка.
//Сделано UltraShot'ом

#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"

#define header L"Objects:"
typedef struct {
  u16 name[128];
  int type;
} OBJECT;


GUI *<<>>Gui;
extern LIST *Objects;
extern int ObjectsCount;
void <<>>Back(BOOK *bk, void *lt)
{
  GUI_Free(<<>>Gui);
}

void <<>>OnEnterPressed(BOOK *bk, void *lt)
{
}

int <<>>OnLBMessage(GUI_MESSAGE * msg)
{
  int item;
  OBJECT * obj;
  switch(msg->msg)
  {    
  case 1:
    item=GUIonMessage_GetCreatedItemIndex(msg);
    obj=(OBJECT *)ListElement_GetByIndex(Objects,item);
    SetMenuItemText0(msg,Str2ID(obj->name,0,SID_ANY_LEN));
  }
  return(1);
};

void <<>>MyOnKey(void *p, int i1, int i2, int i3, int i4)
{

}
GUI_LIST * <<>>CreateGuiList(void * r0, BOOK * bk)
{
  GUI_LIST * lo;
 
  lo =CreateListObject(bk,0);
  GuiObject_SetTitleText(lo,Str2ID(header,0,SID_ANY_LEN));
  
  SetNumOfMenuItem(lo,ObjectsCount);
  OneOfMany_SetonMessage((GUI_ONEOFMANY*)lo,(void*)<<>>OnLBMessage);
  SetCursorToItem(lo,0);
  SetMenuItemStyle(lo,0);
  
  AddMSGHook(lo,ACTION_BACK, <<>>Back);
  AddMSGHook(lo,ACTION_SELECT1,<<>>OnEnterPressed);
  
  DISP_DESC_SetOnKey( DISP_OBJ_GetDESC (lo->DISP_OBJ), (DISP_OBJ_ONKEY_METHOD)<<>>MyOnKey );
  return(lo);
};


int <<>>CreateMenu(void * r0, BOOK * bk)
{
  <<>>Gui=(GUI*)<<>>CreateGuiList(0,bk);
  ShowWindow(<<>>Gui);
  return(0);
}

<<>> меняешь на своё название.
и ещё. добавь OldOnKey=) я в шаблоне забыл

[ Редактировано UltraShot в 29.7.08 20:52 ]

 axJeSSter:
29.07.08, 20:54
 UltraShot
БОЛЬШОЕ Спосибо! Буду пробывать.

 UltraShot:
29.07.08, 20:55
 InDiGo
дык ты книгу сравниваешь с циферкой... конечно, не заработает.
пример, я, кстати, там привёл с использованием хука))

 -=StRaNgER=-:
30.07.08, 01:08
 За хук-пасиба-насчёт стендбая-делал по примеру AllKeyVibra-там проверялось на наличие книги залочки кнопок таким же методом.Я кейлок на стендбай подменил,непашет,а кей вибра-пашет(сам не собирал).Я тебя замучал,наверное :).Буду копаться с хуками.Заканчиваю тока первую часть книги читать)),наверное это многое объясняет


Добавлено 30.7.08 19:06

UltraShot
Наверное я тупой-как с этими хуками работать?Вроде ж сделал всё как у тебя-бестолку,всё равно кнопки реагируют везде,а не только на стендбае

Вот код моего эльфа(да,кстати,а как когда текст через заметки вывожу сделать новую строку?"\n" не помогает.Попробую пробелами)


Код: 
#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"
DISP_DESC *dsp; 
DISP_OBJ * myGUI; 
DISP_OBJ * Standby; 
DISP_OBJ *now;
bool Draw=true;
void elf_exit(void)

{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}
 BATT bat;
 u16 ws[193];

int NewKey(int key, int r1 , int mode)
{

 
if (key==KEY_VOL_DOWN)  
  {if(mode==KBD_SHORT_PRESS)

   {
      StatusIndication_ShowNotes(0x6FFFFFFF);
      MessageBox(0x6FFFFFFF,STR("ELF Minimized :( "),0xFFFF,1,3000,0);
      return(0);
   }   
}


if(key==KEY_VOL_UP)
{
  if(mode==KBD_SHORT_PRESS)
  {
    GetBattaryState((int const*)1 , &bat);
    int intHeap=GetFreeBytesOnHeap();
    snwprintf(ws,193,(u16*)L"Battery=%d CPU Temp=%dC FreeRAM=%dKb",bat.RemainingCapacityInPercent,bat.SystemTemperature,intHeap/1024);
    MessageBox(0x6FFFFFFF,STR("ELF Showed :) "),0xFFFF,1,3000,0);
    StatusIndication_ShowNotes(Str2ID(ws,0,SID_ANY_LEN));
  }
return(-1);
}

return(0);
}

BOOK * HWBook;

int TerminateElf(void * ,BOOK* book)
{
  FreeBook(book);
  return(1);
}

typedef struct
{
  BOOK * book;
}MSG;

int ShowAuthorInfo(void *mess ,BOOK* book)
{
  MSG * msg = (MSG*)mess;
  MessageBox(0x6fFFFFFF,STR("INFO Lite\n\n(c)StRaNgER\nThx-UltraShot"),0, 1 ,5000,msg->book);
  return(1);
}

void onCloseHWBook(BOOK * book)
{
  if (book)
  {
      ModifyKeyHook(NewKey,0);
      StatusIndication_ShowNotes(0x6FFFFFFF);
      MessageBox(0x6FFFFFFF,STR("ELF Killed :( "),0xFFFF,1,3000,0);
      SUBPROC(elf_exit);
  }
}

const PAGE_MSG HW_PageEvents[]@ "DYN_PAGE" ={
  ELF_TERMINATE_EVENT , TerminateElf,
  ELF_SHOW_INFO_EVENT  , ShowAuthorInfo,
  0,0
};

PAGE_DESC base_page ={"InfoLitepage",0,HW_PageEvents};

BOOK * CreateHWBook()
{
  HWBook= new BOOK;
  CreateBook(HWBook,onCloseHWBook,&base_page,"INFO Lite",-1,0);
  return(HWBook);
}

int DisableHook(UI_MESSAGE*) 

Draw=true; 
return(0); 

int EnableHook(UI_MESSAGE*) 

Draw=false; 
return(0); 


int main(void)
{  
ModifyKeyHook(NewKey,1);
ModifyUIHook(STANDBY_NOT_IDLE_EVENT,DisableHook,1); 
ModifyUIHook(STANDBY_IDLE_EVENT,EnableHook,1); 
Standby=(Find_StandbyBook())->gui->DISP_OBJ; 
dsp=DISP_OBJ_GetDESC (myGUI); 
CreateHWBook();
MessageBox(0x6FFFFFFF,STR("ELF Started :) "),0xFFFF,1,1000,0); 
return(0);
}





[ Редактировано InDiGo в 30.7.08 19:08 ]

 Ali12:
02.08.08, 18:04
 Anybody pliz give me the manual how to install or put elf and other (ini. cfg.) files to k800 .
I read there is written how to install but for other models . for example to k750 . w800

 ploik:
02.08.08, 18:49
 InDiGo

Он привел просто пример как использовать хуки. У тебя эти эвены в DYN есть?

Если нет, че ты тогда хочишь добиться.

 eddmund:
03.08.08, 21:50
 Can someone please give an easy example code how to use the function CreateYesNoQuestionVA? I just want to display a question which can be answerd with either Yes or No and depending on the answer different code will be executed.

Update 2008-08-06:

Never mind - I got it. I'm using it in the 1.0 development version of DayDis: While DayDis is running and it is attempted to be started again, the user will be asked if she wants to exit it. This question can be answered with either "Yes" or "No".



[ Редактировано eddmund в 6.8.08 09:48 ]

Прикрепленный к сообщению файл:

DayDis_v1.0-Exit_question.png DayDis_v1.0-Exit_question.png (18.10 kb; 33 hits) Скачать файл

 -=StRaNgER=-:
04.08.08, 01:14
 ploik,конечно,ивенты есть.Как юзать хуки я уже понял,но,видимо,это не применительно к этому эльфу,ибо мне не нужно рисовать ток на стендбае(ф-я StatusIndication_ShowNotes это предусматривает),мне надо,чтоб эльф реагировал на нажатия кнопок тока на стендбае,а с этим хуком так сделать не получаеться,как заюзаю его-эльф перестаёт реагировать на кнопки,где б я не находился(эльф впадает в крайности :-D ).

 michlantecuhtli:
06.08.08, 10:55
 what's this?
Код:

Fatal Error[e72]: Segment DYN_PAGE must be defined in a segment definition option (-Z, -b or -P) 

Страница 51 из 211: « 1 ... 47 48 49 50 [51] 52 53 54 55 ... 211 »

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

© 2005-2018 supertrubka.org