Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Jan 29, 2020 9:32 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 400 posts ]  Go to page Previous 116 17 18 19 2027 Next
Author Message
 Post subject:
PostPosted: Mon Jul 15, 2013 12:37 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1151
В edit'ах при включенном capslock'е символы вводятся как бы с shift'ом.

_________________
я лишь учусь


Top
   
PostPosted: Mon Jul 15, 2013 12:39 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
punk_joker wrote:
В edit'ах при включенном capslock'е символы вводятся как бы с shift'ом.

А как, по твоему, они должны? CapsLock, по твоему, за что отвечает вообще? Фраза "Ты зачем пишешь КАПСОМ?" ни о чем не напоминает?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
 Post subject:
PostPosted: Mon Jul 15, 2013 3:09 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1151
Уточню, становится невозможен ввод цифр без нажатия shift, или отключения capslock. Обычно capslock влияет на регистр букв.

_________________
я лишь учусь


Top
   
PostPosted: Mon Jul 15, 2013 11:52 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
punk_joker wrote:
Уточню, становится невозможен ввод цифр без нажатия shift, или отключения capslock. Обычно capslock влияет на регистр букв.

Да, вот теперь фраза выглядит логично. Это не edit_box, а на уровне системы я добавлял поддержку CapsLock. Надо будет код ядра посмотреть.

З.Ы. Да, проблема так просто не решается. Дело осложняется тем, что в разных раскладках буквы могут присутствовать на не совпадающих клавишах. На английской раскладке букв меньше, а на русской больше и как отлавливать случай с русской кодировкой, если там нет английской буквы. А ведь есть и другие раскладки кроме русской и английской. Пожалуй оставлю я все как есть, выключить CAPS LOCK пользователем - вполне вариант. Если у кого есть нестерпимое желание решить этот вопрос кодированием, то я ему мешать не стану.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Jul 23, 2013 1:46 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SVN r.3830 компонент FileBrowser поддерживает поиск файлов по первой букве. Используются данные активной в текущий момент раскладки клавиатуры.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Aug 06, 2013 11:24 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1151
Для чего служит флаг "фокус приложения" у editbox'а?

_________________
я лишь учусь


Top
   
PostPosted: Wed Aug 07, 2013 12:17 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Для реализации переключения фокуса, же! Представь, что у тебя более одного editbox и все они показывают курсор, а поскольку он не мигающий, то как ты однозначно определишь в какой editbox будет занесен текст?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sat Aug 10, 2013 8:35 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1151
Моя структура (на всякий случай):
edit_box edit_disk_size= {60,48,5,0xffffff,0x94AECE,0x000000,0xffffff,0,sizeof(disk_size)+2,#disk_size,#mouse_dd, 1000000000000000b};

Теперь собственно вопрос, как проверить активный edit или нет? Пробовал проверять равно ли edit_disk_size.flags значению 10b или 1000000000000010b, но не сработало, может и и в другом ошибся, или вообще не так делается?

_________________
я лишь учусь


Top
   
PostPosted: Sat Aug 10, 2013 10:35 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Я для OpenDialog переменную делал отдельную в качестве указателя.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Aug 11, 2013 10:33 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
punk_joker, нужно проверять не значение, а бит.
Например, так:
Code:
ED_FOCUS equ 10b
; ..........................................
        test   [edit_box.flags], dword ED_FOCUS
        jz     .not_focus

или так:
Code:
ED_FOCUS equ 10b
; ..........................................       
        bt     dword [edit_box.flags], 1 ; первый бит, начиная с нулевого
        jnc    .not_focus


Top
   
PostPosted: Thu Oct 10, 2013 3:06 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SVN r.4000 - поправлен компонент Filebrowser.. Теперь пустой слот не выделяется, в случае если ничего не отображается компонентом, т.е. список пустой.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Oct 15, 2013 6:28 pm 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
Нужна помощь по компоненту optionbox - прочитал много доков и исходников, но так для себя и не уяснил самый главный момент - как в программе определить, какой из чекбоксов выбран в данный момент?


Top
   
PostPosted: Tue Oct 15, 2013 6:39 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Heavyiron wrote:
Нужна помощь по компоненту optionbox - прочитал много доков и исходников, но так для себя и не уяснил самый главный момент - как в программе определить, какой из чекбоксов выбран в данный момент?

ЕМНИП там побитовый указатель.

UPD А нет наврал. Там возвращается указатель на текущий чебокс. Можешь посмотреть в исходниках zSea, в частности в win_bcgr.inc

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sat Oct 19, 2013 8:36 pm 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
Хочется более подробно - совсем для дурака...


Top
   
PostPosted: Sat Oct 19, 2013 9:20 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Heavyiron wrote:
Хочется более подробно - совсем для дурака...

Ну, вот достаточно простой пример - окно выбора режима сортировки файлов в zSea, т.е. файл win_sort.inc
Spoiler: Show
Code:
;---------------------------------------------------------------------
k_sort_directory:
   test   dword [status],16
   jnz   still
   or   dword [status],16

   call   get_memory_for_thread_stack
   mov   [thread_stack_5],eax
   mcall   51,1,thread5   ; thread_stack_5
   jmp   still
;---------------------------------------------------------------------
thread5:            ; start of bgrd thread
   mcall   9,procinfo_threads,-1
   mov   eax,[ebx+30]
   mov   [PID5],eax
   mcall   40,0x27
   mov   eax,[sort_type]
   cmp   [sort_type],dword 0
   jne   @f
   
   mov   [option_group2],sort0
   jmp   .thread5
;---------------------------------------------------------------------
@@:
   cmp   [sort_type],dword 2
   jne   @f
   
   mov   [option_group2],sort2
   jmp   .thread5
;---------------------------------------------------------------------
@@:
   cmp   [sort_type],dword 4
   jne   @f
   
   mov   [option_group2],sort4
   jmp   .thread5
;---------------------------------------------------------------------
@@:
   mov   [option_group2],sort6
;-----------------------------------
.thread5:
   mov   [sort_type_old],eax
   mov   eax,[option_group2]
   mov   [option_group2_old],eax
;-----------------------------------
.red:
   call   .draw_window
;-----------------------------------
.still:
   mcall   10   ; wait here for event

   cmp   eax,1   ; redraw request ?
   je   .red

   cmp   eax,2   ; key in buffer ?
   je   .key

   cmp   eax,3   ; button in buffer ?
   je   .button

   cmp   eax,6   ; mouse in buffer ?
   je   .mouse

   jmp   .still
;---------------------------------------------------------------------
.mouse:
   push   dword option_boxes_sort
   call   [option_box_mouse]

   cmp   [option_group2],sort0
   jne   @f
   
   mov   [sort_type],dword 0
   jmp   .still
;---------------------------------------------------------------------
@@:
   cmp   [option_group2],sort2
   jne   @f
   
   mov    [sort_type],dword 2
   jmp   .still
;---------------------------------------------------------------------
@@:
   cmp   [option_group2],sort4
   jne   @f
   
   mov   [sort_type],dword 4
   jmp   .still
;---------------------------------------------------------------------
@@:
   cmp   [option_group2],sort6
   jne   @f
   
   mov   [sort_type],dword 6
   jmp   .still
;---------------------------------------------------------------------
.key:
   mcall
   cmp   ah,27
   je   .close

   cmp   ah,13
   je   .kok

   cmp   ah,177 ;down
   je   .fdn

   cmp   ah,178 ;up
   jne   .still

   cmp   [sort_type],0
   je   .still
   
   sub   [sort_type],2
   jmp   .flagcont
;---------------------------------------------------------------------
.fdn:
   cmp   [sort_type],6
   je   .still
   
   add   [sort_type],2
   
.flagcont:
   cmp   [sort_type],dword 0
   jne   @f
   
   mov   [option_group2],sort0
   call   .draw_opt_boxes
   jmp   .still
;---------------------------------------------------------------------
@@:
   cmp   [sort_type],dword 2
   jne   @f
   
   mov   [option_group2],sort2
   call   .draw_opt_boxes
   jmp   .still
;---------------------------------------------------------------------
@@:
   cmp   [sort_type],dword 4
   jne   @f
   
   mov   [option_group2],sort4
   call   .draw_opt_boxes
   jmp   .still
;---------------------------------------------------------------------
@@:
   cmp   [sort_type],dword 6
   jne   .still   ;@f
   
   mov   [option_group2],sort6
   call   .draw_opt_boxes
   jmp   .still
;---------------------------------------------------------------------
.button:          ; button
   mcall   17       ; get id
   cmp   ah,1         ; button id=1 ?
   jne   .noclose
;-------------------------------
.close:
   mov   eax,[sort_type_old]
   mov   [sort_type],eax
   mov   eax,[option_group2_old]
   mov   [option_group2],eax
.close_1:
   xor   dword [status],16
   xor   eax,eax
   mov   [PID5],eax
   mcall   68,13,[thread_stack_5]
   mcall   -1       ; close this program
;---------------------------------------------------------------------
.noclose:
.kok:
   mov   eax,[load_directory_pointer]
   cmp   [eax+4],dword 0
   je   .close_1
   
   call   load_directory.copy_dir_path
   call   load_directory.sort
   mov   [sort_directory_flag],byte 1
   jmp   .close_1
;---------------------------------------------------------------------
;    *********************************************
;    ******** WINDOW DEFINITIONS AND DRAW ********
;    *********************************************
.draw_window:
   mcall   12,1
   xor   eax,eax          ; function 0 : define and draw window
   xor   esi,esi
   mcall   ,<100,300>,<100,110>,0x13909090,,labelt5
   mcall   8,<120,40>,<50,20>,4,0xdddddd
   mcall   4,<46,28>,0xffffff,sorttext,sorttext.size
   xor   ecx,ecx
   mcall   ,<135,57>,,ok_btn,ok_btn.size
   call   .draw_opt_boxes
;   mcall   47,0x80000,[PID5],<200, 5>,0xffffff
   mcall   12,2
   ret
;---------------------------------------------------------------------
.draw_opt_boxes:
   push   dword option_boxes_sort
   call   [option_box_draw]
   ret
;---------------------------------------------------------------------

Блок данных для optionbox расположен в файле data.inc
Spoiler: Show
Code:
;---------------------------------------------------------------------
align 4
;option_boxes_sort:
sort0 option_box option_group2,60,40,6,12,0xFFFFFF,0,0xffffff,op_text_1.1,op_text_1.e1-op_text_1.1
sort2 option_box option_group2,60,55,6,12,0xFFFFFF,0,0xffffff,op_text_1.2,op_text_1.e2-op_text_1.2
sort4 option_box option_group2,60,70,6,12,0xFFFFFF,0,0xffffff,op_text_1.3,op_text_1.e3-op_text_1.3
sort6 option_box option_group2,60,85,6,12,0xFFFFFF,0,0xffffff,op_text_1.4,op_text_1.e4-op_text_1.4
option_boxes_sort_end:

op_text_1:
.1 db 'Name'
.e1:
.2 db 'Type'
.e2:
.3 db 'Date'
.e3:
.4 db 'Size'
.e4:

option_group2   dd sort2
option_group2_old dd 0

option_boxes_sort       dd sort0, sort2, sort4, sort6,0

Как видно в коде считывается указатель на текущий выбранный optionbox - sort0 или sort2 или sort4 или sort6, значение хранится в переменной option_group2, которая задана в каждом из блоков определяющем каждую возможную линию.

Я уж не знаю как еще проще объяснить.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 400 posts ]  Go to page Previous 116 17 18 19 2027 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited