Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
  
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
TrackIDentify
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Опросы
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

создать свой GUI легко : Эльфостроение : Эльфы : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Эльфы
      /  Эльфостроение
   /  создать свой GUI легко
На печать 
Правила 


den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #1 [09.08.09, 11:28] создать свой GUI легко   

 
внимание! для нормальной компиляции выложенного тут кода требуется патч для IAR из темы MOV PC,Rx

тут уже есть примеры использования некоторых стандартных gui. а вот примеров создания gui с абсолютно своим поведением нет.
примеры можно найти на svn (BcfgEdit/EventControl/Gono4ki/...), но способ, которым они там создаются, заставляет описывать кучу мелочей, отвлекающих от написания контрола. да и лично мне в коде этих эльфов разбираться очень сложно.
для себя я сделал простую библиотеку классов. надеюсь, кому-то она облегчит работу.
для начала несколько слов о взаимосвязи объектов. BOOK имеет GUI, GUI имеет DISP_OBJ, а DISP_OBJ это непосредственно то, что мы видим, и с чем взаимодействуем (на самом деле DISP_OBJ имеет WINDOW, но нам это не нужно).
итак, чтобы прицепить контрол к книге, нужно создать GUI и DISP_OBJ.
при использовании данной библиотеки достаточно описать класс, описывающий DISP_OBJ.

Код: 
class CMyDisp:public CDispObjT<CMyDisp>
{
public:
  static char* getName();
  void onDraw(int a,int b,int c);
  void onKey(int key,int,int repeat,int type);
};

...

char* CMyDisp::getName()
{
  return "MyDisp";
}
  
void CMyDisp::onKey(int key,int,int repeat,int type)
{
// обрабатываем нажатия клавиш
}

void CMyDisp::onDraw(int a,int b,int c)
{
// рисуем
}

CMyDisp наследуется от шаблонного класса CDispObjT. при наследовании от этого шаблона обязательно нужно определить метод getName. остальные методы переопределять только по необходимости (список самих методов смотрите в описании классов в файле CL.H)

создание, использование и удаление GUI на основе нашего класса проще простого:
Код:
CGuiBase* gui = new CGuiT<CMyDisp>(book, 0);

gui->Show();
gui->SetStyle(1);
gui->Free();


в примере ещё используется CBook, но там всё просто, в класс CMyBook завёрнут функционал эльфа HelloWorld с свн.
вообще главная задача эльфа - показать работу с GUI. эльф рисует на экране квадратик, при нажатии на левый софт gui эльфа прячется (из букмана можно его вернуть), а при нажатии "назад" удаляется совсем.

собираюсь ещё добавить классов, чтоб быстро и легко переопределять поведение стандартных контролов (listmenu, inputstring итд). да и добавить методов в уже готовые классы не помешает.
есть вопросы, предложения? не стесняйтесь, пишите



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

cldemo.zip cldemo.zip (9.58 kb; 156 hits) Скачать файл


promt is better than google translate
Спасибо сказали: 273308715, nagmet, unfunk, DuXeN0N, Crong, DuMOHsmol, Rc, ELECTRO-NIC, Kitten85, scorpion16_Richi, diezil, SiLoN, Ну6иК, MoneyMasteR

mmcorp


Patcher/Elfmaker


Регистрация: 14.5.08
Сообщений: 358
Репутация: 2528
Откуда: Ржев




 
  #2 [08.10.09, 14:52] Re: создать свой GUI легко   

 
den_po, а можешь сделать что нибудь подобное с гви?




не занимаюсь эльфами и патчами (=
Siemens c75 -> SonyEricsson k610i + SonyEricsson w595 + SonyEricsson w580i -> HTC Desire Z

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #3 [08.10.09, 14:59] Re: создать свой GUI легко   

 
MoneyMasteR, там есть класс для GC. по его подобию несложно и для GVI сделать.


Добавлено 8.10.09 15:00

а вообще да, планировал. но сначала надо разобраться с а2, нужно, чтоб одинаково работало везде.




promt is better than google translate

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #4 [13.03.10, 21:19] Re: создать свой GUI легко   

 
выложил на свн classlib и два примера, использующие эту библиотеку: крестики-нолики (tictactoe) и virtualmethods.




promt is better than google translate
Спасибо сказали: DuMOHsmol, SiLoN, Yoti, JohnNorth


Похожие темы

  • Поиск
  • Права
Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.13 секунд | 11 Запросов | HTML: 34.13 КБ -