comparison libmenu/menu_console.c @ 17993:98eb966a4024

Add a function to draw flat boxes and use it to make the list menu and console look much cooler. Idea take from Otvos Atilla's patches (oattila_At_chello--.--hu).
author albeu
date Thu, 30 Mar 2006 02:52:54 +0000
parents 931bdbc37ee0
children 6927fabaef92
comparison
equal deleted inserted replaced
17992:2545bbd91450 17993:98eb966a4024
53 char* child_prompt; 53 char* child_prompt;
54 int buf_lines; // Buffer size (in line) 54 int buf_lines; // Buffer size (in line)
55 int height; // Display size in % 55 int height; // Display size in %
56 int minb; 56 int minb;
57 int vspace; 57 int vspace;
58 int bg,bg_alpha;
58 unsigned int hide_time; 59 unsigned int hide_time;
59 unsigned int show_time; 60 unsigned int show_time;
60 int history_max; 61 int history_max;
61 int raw_child; 62 int raw_child;
62 }; 63 };
79 "$ ", 80 "$ ",
80 50, // lines 81 50, // lines
81 33, // % 82 33, // %
82 3, 83 3,
83 3, 84 3,
85 0x80,0x40,
84 500, 86 500,
85 500, 87 500,
86 10, 88 10,
87 0 89 0
88 }; 90 };
94 { "child-prompt", ST_OFF(child_prompt), CONF_TYPE_STRING, M_OPT_MIN, 1, 0, NULL }, 96 { "child-prompt", ST_OFF(child_prompt), CONF_TYPE_STRING, M_OPT_MIN, 1, 0, NULL },
95 { "buffer-lines", ST_OFF(buf_lines), CONF_TYPE_INT, M_OPT_MIN, 5, 0, NULL }, 97 { "buffer-lines", ST_OFF(buf_lines), CONF_TYPE_INT, M_OPT_MIN, 5, 0, NULL },
96 { "height", ST_OFF(height), CONF_TYPE_INT, M_OPT_RANGE, 1, 100, NULL }, 98 { "height", ST_OFF(height), CONF_TYPE_INT, M_OPT_RANGE, 1, 100, NULL },
97 { "minbor", ST_OFF(minb), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, 99 { "minbor", ST_OFF(minb), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL },
98 { "vspace", ST_OFF(vspace), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, 100 { "vspace", ST_OFF(vspace), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL },
101 { "bg", ST_OFF(bg), CONF_TYPE_INT, M_OPT_RANGE, -1, 255, NULL },
102 { "bg-alpha", ST_OFF(bg_alpha), CONF_TYPE_INT, M_OPT_RANGE, 0, 255, NULL },
99 { "show-time",ST_OFF(show_time), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, 103 { "show-time",ST_OFF(show_time), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL },
100 { "hide-time",ST_OFF(hide_time), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, 104 { "hide-time",ST_OFF(hide_time), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL },
101 { "history-size",ST_OFF(history_max), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL }, 105 { "history-size",ST_OFF(history_max), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL },
102 { "raw-child", ST_OFF(raw_child), CONF_TYPE_FLAG, 0, 0, 1, NULL }, 106 { "raw-child", ST_OFF(raw_child), CONF_TYPE_FLAG, 0, 0, 1, NULL },
103 { NULL, NULL, NULL, 0,0,0,NULL } 107 { NULL, NULL, NULL, 0,0,0,NULL }
188 y = h - mpriv->vspace; 192 y = h - mpriv->vspace;
189 193
190 if(x < 0 || y < 0 || w <= 0 || h <= 0 ) 194 if(x < 0 || y < 0 || w <= 0 || h <= 0 )
191 return; 195 return;
192 196
197 if(mpriv->bg >= 0)
198 menu_draw_box(mpi,mpriv->bg,mpriv->bg_alpha,0,0,mpi->w,h);
199
193 if(!mpriv->child || !mpriv->raw_child){ 200 if(!mpriv->child || !mpriv->raw_child){
194 char input[strlen(mpriv->cur_history->buffer) + strlen(mpriv->prompt) + 1]; 201 char input[strlen(mpriv->cur_history->buffer) + strlen(mpriv->prompt) + 1];
195 sprintf(input,"%s%s",mpriv->prompt,mpriv->cur_history->buffer); 202 sprintf(input,"%s%s",mpriv->prompt,mpriv->cur_history->buffer);
196 menu_text_size(input,w,mpriv->vspace,1,&lw,&lh); 203 menu_text_size(input,w,mpriv->vspace,1,&lw,&lh);
197 menu_draw_text_full(mpi,input,x,y,w,h,mpriv->vspace,1, 204 menu_draw_text_full(mpi,input,x,y,w,h,mpriv->vspace,1,