1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-16 01:57:09 +00:00

make maximum_width a lua setting

This commit is contained in:
Pavel Labath 2010-08-25 19:01:02 +02:00
parent 5f60b5427e
commit 3d29d27e8b

View File

@ -446,7 +446,8 @@ static int fixed_size = 0, fixed_pos = 0;
#endif #endif
static int minimum_width, minimum_height; static int minimum_width, minimum_height;
static int maximum_width; static conky::range_config_setting<int> maximum_width("maximum_width", 0,
std::numeric_limits<int>::max(), 0, true);
static bool isutf8(const char* envvar) { static bool isutf8(const char* envvar) {
char *s = getenv(envvar); char *s = getenv(envvar);
@ -1027,8 +1028,9 @@ static void update_text_area(void)
if (text_height < minimum_height) { if (text_height < minimum_height) {
text_height = minimum_height; text_height = minimum_height;
} }
if (text_width > maximum_width && maximum_width > 0) { int mw = maximum_width.get(*state);
text_width = maximum_width; if (text_width > mw && mw > 0) {
text_width = mw;
} }
} }
@ -1186,8 +1188,9 @@ static int text_size_updater(char *s, int special_index)
if (w > text_width) { if (w > text_width) {
text_width = w; text_width = w;
} }
if (text_width > maximum_width && maximum_width) { int mw = maximum_width.get(*state);
text_width = maximum_width; if (text_width > mw && mw > 0) {
text_width = mw;
} }
text_height += last_font_height; text_height += last_font_height;
@ -1312,11 +1315,12 @@ static void draw_string(const char *s)
} }
#ifdef BUILD_X11 #ifdef BUILD_X11
if (out_to_x.get(*state)) { if (out_to_x.get(*state)) {
if (text_width == maximum_width) { int mw = maximum_width.get(*state);
if (text_width == mw) {
/* this means the text is probably pushing the limit, /* this means the text is probably pushing the limit,
* so we'll chop it */ * so we'll chop it */
while (cur_x + get_string_width(tmpstring2) - text_start_x while (cur_x + get_string_width(tmpstring2) - text_start_x > mw
> maximum_width && strlen(tmpstring2) > 0) { && strlen(tmpstring2) > 0) {
tmpstring2[strlen(tmpstring2) - 1] = '\0'; tmpstring2[strlen(tmpstring2) - 1] = '\0';
} }
} }
@ -1363,6 +1367,7 @@ int draw_each_line_inner(char *s, int special_index, int last_special_applied)
#ifdef BUILD_X11 #ifdef BUILD_X11
int font_h = 0; int font_h = 0;
int cur_y_add = 0; int cur_y_add = 0;
int mw = maximum_width.get(*state);
#endif /* BUILD_X11 */ #endif /* BUILD_X11 */
char *recurse = 0; char *recurse = 0;
char *p = s; char *p = s;
@ -1439,8 +1444,7 @@ int draw_each_line_inner(char *s, int special_index, int last_special_applied)
{ {
int h, by; int h, by;
double bar_usage, scale; double bar_usage, scale;
if (cur_x - text_start_x > maximum_width if (cur_x - text_start_x > mw && mw > 0) {
&& maximum_width > 0) {
break; break;
} }
h = current->height; h = current->height;
@ -1482,8 +1486,7 @@ int draw_each_line_inner(char *s, int special_index, int last_special_applied)
double usage, scale; double usage, scale;
#endif /* MATH */ #endif /* MATH */
if (cur_x - text_start_x > maximum_width if (cur_x - text_start_x > mw && mw > 0) {
&& maximum_width > 0) {
break; break;
} }
@ -1535,8 +1538,7 @@ int draw_each_line_inner(char *s, int special_index, int last_special_applied)
int colour_idx = 0; int colour_idx = 0;
unsigned long last_colour = current_color; unsigned long last_colour = current_color;
unsigned long *tmpcolour = 0; unsigned long *tmpcolour = 0;
if (cur_x - text_start_x > maximum_width if (cur_x - text_start_x > mw && mw > 0) {
&& maximum_width > 0) {
break; break;
} }
h = current->height; h = current->height;
@ -2248,9 +2250,9 @@ static void main_loop(void)
text_width = window.width - 2*border_total; text_width = window.width - 2*border_total;
text_height = window.height - 2*border_total; text_height = window.height - 2*border_total;
if (text_width > maximum_width int mw = maximum_width.get(*state);
&& maximum_width > 0) { if (text_width > mw && mw > 0) {
text_width = maximum_width; text_width = mw;
} }
} }
@ -2629,7 +2631,6 @@ static void set_default_configurations(void)
set_first_font("6x10"); set_first_font("6x10");
minimum_width = 5; minimum_width = 5;
minimum_height = 5; minimum_height = 5;
maximum_width = 0;
stippled_borders = 0; stippled_borders = 0;
#endif /* BUILD_X11 */ #endif /* BUILD_X11 */
@ -2916,15 +2917,6 @@ char load_config_file(const char *f)
CONF_ERR; CONF_ERR;
} }
} }
CONF("maximum_width") {
if (value) {
if (sscanf(value, "%d", &maximum_width) != 1) {
CONF_ERR;
}
} else {
CONF_ERR;
}
}
#endif /* BUILD_X11 */ #endif /* BUILD_X11 */
CONF("top_name_width") { CONF("top_name_width") {
if (set_top_name_width(value)) if (set_top_name_width(value))