diff --git a/programs/cmm/clipview/clipview.c b/programs/cmm/clipview/clipview.c index 6531ae9fdd..af756dd53e 100644 --- a/programs/cmm/clipview/clipview.c +++ b/programs/cmm/clipview/clipview.c @@ -19,12 +19,12 @@ // // //===================================================// -?define WINDOW_HEADER "Clipboard Viewer v1.02" +?define WINDOW_HEADER "Clipboard Viewer v1.03" ?define T_DELETE_LAST_SLOT "Delete last slot" ?define T_DELETE_ALL_SLOTS "Delete all slots" ?define T_RESET_BUFFER_LOCK "Reset the lock buffer" ?define T_COLUMNS_TITLE "# | Data size | Data type | Contents" -?define T_COLUMN_VIEW "View" +?define T_COLUMN_VIEW "| View" ?define T_VIEW_OPTIONS "TEXT HEX" ?define DEFAULT_SAVE_PATH "/tmp0/1/clipview.tmp" char *data_type[] = { "Text", "Image", "RAW", "Unknown" }; @@ -110,7 +110,7 @@ void DrawWindowContent() button_x += DrawStandartCaptButton(button_x, select_list.y + select_list.h + 8, BT_DELETE_ALL_SLOTS, T_DELETE_ALL_SLOTS); button_x += DrawStandartCaptButton(button_x, select_list.y + select_list.h + 8, BT_UNLOCK, T_RESET_BUFFER_LOCK); WriteText(select_list.x+12, select_list.y - 23, select_list.font_type, system.color.work_text, T_COLUMNS_TITLE); - WriteText(select_list.x+select_list.w-68, select_list.y - 23, select_list.font_type, system.color.work_text, T_COLUMN_VIEW); + WriteText(select_list.x+select_list.w - 88-14, select_list.y - 23, select_list.font_type, system.color.work_text, T_COLUMN_VIEW); ClipViewSelectListDraw(); SelectList_DrawBorder(); } @@ -131,6 +131,8 @@ void SelectList_DrawLine(dword i) dword line_text[2048]; dword size_kb; dword text_color = 0; + dword bgcol = 0xFFFfff; + if (i%2) bgcol = 0xF1F1F1; slot_data = Clipboard__GetSlotData(select_list.first + i); cdata.size = ESDWORD[slot_data]; @@ -142,6 +144,7 @@ void SelectList_DrawLine(dword i) cdata.content = slot_data + cdata.content_offset; yyy = i*select_list.item_h+select_list.y; + DrawBar(select_list.x+1, yyy, select_list.w-1, select_list.item_h, bgcol); WriteText(select_list.x+12, yyy+select_list.text_y, select_list.font_type, text_color, itoa(select_list.first + i)); size_kb = ConvertSizeToKb(cdata.size); WriteText(select_list.x+44, yyy+select_list.text_y, select_list.font_type, text_color, size_kb); diff --git a/programs/cmm/software_widget/software_widget.c b/programs/cmm/software_widget/software_widget.c index 9bb1af314b..b77f9cad48 100644 --- a/programs/cmm/software_widget/software_widget.c +++ b/programs/cmm/software_widget/software_widget.c @@ -33,6 +33,8 @@ char window_title[128], #define LIST_BACKGROUND_COLOR 0xF3F3F3 +block ipos[128]; + void load_config() { ini_get_str stdcall (#settings_ini_path, "Config", "window_title", #window_title, sizeof(window_title), "Software widget"); @@ -78,10 +80,13 @@ void main() loop() switch(WaitEvent()) { - // case evKey: - // GetKeys(); - // if (list.ProcessKey(key_scancode)) DrawList(); - // break; + case evKey: + GetKeys(); + if (SCAN_CODE_LEFT == key_scancode) key_scancode = SCAN_CODE_UP; + if (SCAN_CODE_RIGHT == key_scancode) key_scancode = SCAN_CODE_DOWN; + if (list.ProcessKey(key_scancode)) DrawSelection(); + if (SCAN_CODE_ENTER == key_scancode) EventRunApp(list.cur_y); + break; case evButton: id=GetButtonID(); @@ -96,7 +101,9 @@ void main() if (Form.status_window>2) { DrawTitle(#window_title); break; } else DrawTitle(""); draw_top_bar(); DrawList(); - DrawBar(0, row + 1 * list.item_h + list_pos, Form.cwidth, -row - 1 * list.item_h - list_pos + Form.cheight, LIST_BACKGROUND_COLOR); + DrawBar(0, row +1 * list.item_h + list_pos, Form.cwidth, -row - 1 * list.item_h - list_pos + Form.cheight, LIST_BACKGROUND_COLOR); + //if (list.cur_y == list.count) + DrawSelection(); break; } } @@ -116,6 +123,7 @@ byte draw_icons_from_section(dword key_value, key_name, sec_name, f_name) int tmp, icon_id, icon_char_pos; + int text_w; //do not show items located in /kolibrios/ if this directory not mounted if (!strncmp(key_value, "/kolibrios/", 11)) || (!strncmp(key_value, "/k/", 3)) @@ -136,8 +144,10 @@ byte draw_icons_from_section(dword key_value, key_name, sec_name, f_name) if (icon_char_pos) ESBYTE[icon_char_pos] = '\0'; //delete icon from string app_path_collection.add(key_value); //kfont.WriteIntoWindowCenter(col*list.item_w+7,row*list.item_h+47 + list_pos, list.item_w,0, LIST_BACKGROUND_COLOR, 0xDCDCDC, 12, key_name); - kfont.WriteIntoWindowCenter(col*list.item_w+5,row*list.item_h+46 + list_pos, list.item_w,0, LIST_BACKGROUND_COLOR, 0x000000, 12, key_name); - if (list.cur_y == list.count) DrawWideRectangle(col*list.item_w+6, row*list.item_h + list_pos,list.item_w,list.item_h-5, 2, 0x0080FF); + text_w = kfont.WriteIntoWindowCenter(col*list.item_w+5,row*list.item_h+46 + list_pos, list.item_w,0, LIST_BACKGROUND_COLOR, 0x000000, 12, key_name); + ipos[list.count].x = list.item_w-text_w/2+calc(col*list.item_w)+5; + ipos[list.count].y = row*list.item_h+46 + list_pos + 16; + ipos[list.count].w = text_w; list.count++; col++; return true; @@ -211,9 +221,17 @@ void EventRunApp(dword appid) { notify("'Application not found' -E"); } +} +void DrawSelection() +{ + int i; + dword col; + for (i=0; i