12.12.2014, 22:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Пишем свое API
Павел, с какого посыла Вы решили начинать дерево объектов с кнопки?
Сообщение от Easyrider83
|
Итак, любой интерфейс начинается с самого элементарного – кнопки.
|
Оно конечно да, но после то, как
1. Z-Order объектов, на которых лежат эти самые кнопки
2. Вычисление отрисовки окон (того, что необходимо обновить).
3. Механизм сообщений.
|
|
|
|
12.12.2014, 22:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Пишем свое API
Сообщение от MisterDi
|
введение дополнительной иерархии ИМХО избыточно.
|
Все зависит от задачи. А ежели окно ошибки, или предупреждения с выбором нужно вывести? Даже с кнопконабирателем, как в первом посте?
|
|
|
|
12.12.2014, 22:56
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Пишем свое API
Я не говорил, что пишу GUI. Это интерфейс. На чем рисовать кнопку - ваша проблема. Моя задача - графика и обработчик при минимальных расходах флеши. Целевая аудитория - мелкие 8-ми битные камни с дисплеями, подключенными по SPI для экономии линий ввода-вывода.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
12.12.2014, 22:57
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Пишем свое API
Сообщение от AJScorp
|
Все зависит от задачи. А ежели окно ошибки, или предупреждения с выбором нужно вывести? Даже с кнопконабирателем, как в первом посте?
|
Залейте двумя рамками Label и налепите две кнопки. Проще все.
А вот так выглядят кнопки, на которых мы теперь можем писать разным шрифтом.
Последний раз редактировалось Easyrider83; 12.12.2014 в 23:19.
|
|
|
|
12.12.2014, 23:15
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Пишем свое API
Сообщение от Easyrider83
|
Целевая аудитория - мелкие 8-ми битные камни с дисплеями, подключенными по SPI для экономии линий ввода-вывода.
|
8-ми битные камни, да ещё дисплеи на SPI, да ещё и FreeRTOS! Силён!
|
|
|
|
12.12.2014, 23:21
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Пишем свое API
В моем случае это STM32F103VC, который никак не 8-ми битный. Ничего другого под рукой нет. Операционка в данном случае никакой роли не играет.
|
|
|
|
12.12.2014, 23:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Пишем свое API
Советую посмотреть на функции openmotif и делать что-то подобное.
Уж больно текущая реализация жутко смотрится.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
12.12.2014, 23:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Пишем свое API
Сообщение от Easyrider83
|
Я не говорил, что пишу GUI. Это интерфейс. На чем рисовать кнопку - ваша проблема.
|
Это для меня уже давно не проблема, почти по всем 3м пунктам, хотел присоединиться к "проектированию".
|
|
|
|
13.12.2014, 00:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Пишем свое API
Сообщение от MisterDi
|
Это верно для случая многозадачных систем
|
На одном окне !!! Panel внутри GroupBox и GroupBox внутри Panel;
И щелкнем мышкой в центре.
Вопрос: какая должна быть очередность опроса котролов ?
А они каждый в своем массиве - Panel [NPanel] и GroupBox[NGroupBox]
|
|
|
|
13.12.2014, 00:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Пишем свое API
Рисовал тут как - через SPI;
Рисование строки в прямоугольник с центровкой текста ;
Фонт самопальный высотой 24 пикселы;
PHP код:
|
void DrawString(unsigned char *tx, int Left, int Top, int Width, uint16_t ColorFont, uint16_t ColorBack)
{
int uk = 0;
int uk1 = 0;
uint16_t cnt = 0;
uint32_t *ptr;
uint32_t b = 0;
unsigned char *ptc = tx;
// задать область рисования
SetString(Left, Top, Width);
// стартанем запись
TFT_DC_LOW;
TFT_CS_LOW;
SendByte( 0x2C );
TFT_DC_HIGH;
// Вычислим ширину текста и отцентруем
while(*ptc != 0) { uk += fnt24[ fnt24[ *ptc++ ] ] ;}
uk = (Width - uk) / 2;
uk1 = 0;
// Зальем слева;
while(uk1 ‹ uk)
{
for( int j=0; j‹24; j++) SendWord(ColorBack);
uk1++;
}
// Рисуем текст
while(*tx != 0 && uk1 ‹= Width)
{
cnt = fnt24[ fnt24[*tx] ];
ptr = (uint32_t *)&fnt24[fnt24[*tx++]+1];
for(uint16_t i=0;i‹cnt;i++)
{
b = *ptr++;
for( int j = 0; j ‹ 24;j++)
{
if((b & 0x800000) != 0) SendWord(ColorFont);
else SendWord(ColorBack);
b ‹‹= 1;
}
if(++uk1 ›= w)break;
}
}
//зальем кончик
while(uk1 ‹= Width)
{
for(int j=0; j‹24; j++) SendWord(ColorBack);
uk1++;
}
TFT_CS_HIGH;
}
|
|
|
|
Сказали "Спасибо" Boba_spb
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
свое USB устройство
|
ESWANT |
Микроконтроллеры, АЦП, память и т.д |
2 |
08.09.2009 14:58 |
Часовой пояс GMT +4, время: 11:34.
|
|