//11.03.12 - start! #ifndef AUTOBUILD ?include "lang.h--" #endif #define MEMSIZE 0xFE800 #include "..\lib\mem.h" #include "..\lib\strings.h" #include "..\lib\io.h" #include "..\lib\list_box.h" #include "..\lib\gui.h" #include "..\lib\obj\box_lib.h" #ifdef LANG_RUS ?define WINDOW_HEADER "Усправление темой" ?define T_SKINS " Тема окон" ?define T_WALLPAPERS " Обои рабочего стола" #else ?define WINDOW_HEADER "Appearance" ?define T_SKINS " Skins" ?define T_WALLPAPERS " Wallpappers" #endif unsigned char icons[]= FROM "icons.raw"; #define PANEL_H 30 #define SKINS_STANDART_PATH "/sys/skins" //"/kolibrios/res/skins" #define WALP_STANDART_PATH "/kolibrios/res/wallpapers" llist list[2]; int active; enum { WALLPAPERS, SKINS }; char folder_path[4096]; char cur_file_path[4096]; char temp_filename[4096]; int files_mas[100]; int cur; system_colors sc; proc_info Form; scroll_bar scroll1 = { 18,200,398, 44,18,0,115,15,0,0xeeeeee,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}; void Open_Dir() { int j; list[active].count = 0; if(io.dir.buffer)free(io.dir.buffer); io.dir.load(#folder_path,DIR_ONLYREAL); for (j=0; j list[active].visible) list_last = list[active].visible; else list_last = list[active].count; for (i=0; i=2) break; DrawTabs(); Draw_List(); } } } #define BT_PADDING 16 void DrawTab(dword x,y, but_id, is_active, text) { dword col_bg, col_text; dword w=strlen(text)*6+BT_PADDING, h=21; if (is_active) { col_bg=sc.work_button; col_text=sc.work_button_text; } else { col_bg=sc.work; col_text=sc.work_text; } DrawRectangle(x,y, w,h, sc.work_graph); DrawCaptButton(x+1,y+1, w-2,h-1, but_id, col_bg, col_text, text); _PutImage(x+6,y+4, 16,15, but_id-2*16*15*3+#icons); } void DrawTabs() { DrawBar(0,0, Form.cwidth, PANEL_H-1, sc.work); DrawTab(10,7, 2, list[WALLPAPERS].active, T_WALLPAPERS); DrawTab(strlen(T_WALLPAPERS)*6+BT_PADDING+21,7, 3, list[SKINS].active, T_SKINS); DrawBar(0,PANEL_H-2, Form.cwidth, 1, sc.work_graph); DrawBar(0,PANEL_H-1, Form.cwidth, 1, 0xEEEeee); } void TabClick(int N) { if (N==SKINS) { list[SKINS].active = 1; list[WALLPAPERS].active = 0; } if (N==WALLPAPERS) { list[SKINS].active = 0; list[WALLPAPERS].active = 1; } active = N; GetFiles(); DrawTabs(); Draw_List(); } void DrawScroller() { scroll1.bckg_col = 0xBBBbbb; scroll1.frnt_col = sc.work; scroll1.line_col = sc.work_graph; scroll1.max_area = list[active].count; scroll1.cur_area = list[active].visible; scroll1.position = list[active].first; scroll1.all_redraw=1; scroll1.start_x = list[active].x + list[active].w; scroll1.start_y = list[active].y-2; scroll1.size_y = list[active].h+2; scrollbar_v_draw(#scroll1); } stop: