[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Antiright-devel] antiright/xshell arguments.c button.c layout.h ...
From: |
Jeffrey Bedard |
Subject: |
[Antiright-devel] antiright/xshell arguments.c button.c layout.h ... |
Date: |
Sat, 01 Sep 2007 18:13:07 +0000 |
CVSROOT: /sources/antiright
Module name: antiright
Changes by: Jeffrey Bedard <jefbed> 07/09/01 18:13:07
Modified files:
xshell : arguments.c button.c layout.h xshell.c
Log message:
Use layout comprising of a compromise between fixed dimensions and
font-based spacing.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/arguments.c?cvsroot=antiright&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/button.c?cvsroot=antiright&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/layout.h?cvsroot=antiright&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/antiright/xshell/xshell.c?cvsroot=antiright&r1=1.7&r2=1.8
Patches:
Index: arguments.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/arguments.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- arguments.c 28 Aug 2007 19:39:12 -0000 1.10
+++ arguments.c 1 Sep 2007 18:13:07 -0000 1.11
@@ -32,6 +32,13 @@
}
static void
+add_label(XShell * xsh, const char * label_text)
+{
+ xshell_button_new(xsh, xsh->gui.widgets, label_text);
+ xsh->gui.last_widget->events.button_press=NULL;
+}
+
+static void
handle_add_options(XShell * xsh, int argc, char ** argv,
unsigned int * counter)
{
@@ -42,8 +49,7 @@
{
case 'l': /* Label. */
(*counter)++;
- xshell_button_new(xsh, xsh->gui.widgets, argv[*counter]);
- xsh->gui.last_widget->events.button_press=NULL;
+ add_label(xsh, argv[(*counter)]);
break;
case 'r': /* Add a column. */
@@ -79,19 +85,23 @@
}
static void
+set_geometry(XShell * xsh, const char * geometry_string)
+{
+ XWindowAttributes *geometry
+ = &(xsh->gui.widgets->geometry);
+ XParseGeometry(geometry_string,
+ &(geometry->x), &(geometry->y),
+ &(geometry->width), &(geometry->height));
+}
+
+static void
handle_option_options(XShell * xsh, int argc, char ** argv,
unsigned int * counter)
{
switch(argv[*counter][2])
{
case 'g':
- {
- XWindowAttributes *geometry
- = &(xsh->gui.widgets->geometry);
- XParseGeometry(argv[++(*counter)],
- &(geometry->x), &(geometry->y),
- &(geometry->width), &(geometry->height));
- }
+ set_geometry(xsh, argv[++(*counter)]);
break;
case 'n':
set_override_redirect(xsh);
Index: button.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/button.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- button.c 28 Aug 2007 19:39:12 -0000 1.8
+++ button.c 1 Sep 2007 18:13:07 -0000 1.9
@@ -25,18 +25,28 @@
static void
draw_label(XShell * xsh, XWidget * button)
{
- XSHButtonData * data;
- char * label;
+ XSHButtonData * data = (XSHButtonData *)button->data;
+ char * label=data->label;
XShellGUI * gui = &(xsh->gui);
Display * dpy = gui->display;
GC gc = xsh->gui.gc;
+ const unsigned int label_length = strlen(label);
+ const unsigned int font_width = XSH_FONT_WIDTH(xsh);
+ const unsigned int font_height = XSH_FONT_HEIGHT(xsh);
- data=(XSHButtonData *)button->data;
- label=data->label;
XSH_SET_COLOR(dpy, gc, 0, 0, 0);
XDrawString(xsh->gui.display, button->window, xsh->gui.gc,
- 5, 12, label, strlen(label));
+ font_width, font_height-XSH_WIDGET_PADDING,
+ label, label_length);
#if 0
+ {
+ XWindowAttributes * geometry = &(button->geometry);
+
+ XMoveResizeWindow(xsh->gui.display, button->window,
+ geometry->x, geometry->y,
+ font_width*label_length,
font_height+XSH_WIDGET_PADDING*2);
+ }
+
{
unsigned int width, height;
GC gc = xsh->gui.gc;
@@ -97,6 +107,16 @@
button->events.button_press=&button_press;\
button->events.button_release=&button_release;
+static char *
+setup_label(const char * command)
+{
+ char * label;
+
+ label=strchr(command, '#')?label+1:(char*)command;
+
+ return label;
+}
+
void
xshell_floating_button_new(XShell * xsh, XWidget * parent,
const char * command, int x, int y,
@@ -106,12 +126,11 @@
XSHButtonData * data;
char * label;
+ xshell_XWidget_new(xsh, parent, x, y, width, height);
button=xsh->gui.last_widget;
button->data=data=malloc(sizeof(XSHButtonData));
- data->command=(char *)command;
- data->label=(label=strchr(command, '#'))?label+1:(char*)command;
+ data->label=setup_label(data->command=(char *)command);
SETUP_BUTTON_EVENTS(button);
- xshell_XWidget_new(xsh, parent, x, y, width, height);
}
void
@@ -123,11 +142,14 @@
XSH_WIDGET_WIDTH*(layout->column_count),
XSH_WIDGET_HEIGHT*((layout->row_count =
layout->row_count < layout->max_row_count
- ? layout->row_count+1:0)-1),
+ ? layout->row_count+1:0)),
XSH_WIDGET_WIDTH, XSH_WIDGET_HEIGHT);
+/*#ifdef DEBUG */
+ printf("layout->row_count: %d\nlayout->max_row_count: %d\n",
+ layout->row_count, layout->max_row_count);
+/* #endif */
if(layout->row_count==0)
layout->column_count++;
-
}
Index: layout.h
===================================================================
RCS file: /sources/antiright/antiright/xshell/layout.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- layout.h 20 Aug 2007 19:55:25 -0000 1.4
+++ layout.h 1 Sep 2007 18:13:07 -0000 1.5
@@ -24,8 +24,6 @@
#define XSH_LAYOUT_H
#define XSH_ROWS_PER_COLUMN 8
-#define XSH_WIDGET_WIDTH 96
-#define XSH_WIDGET_HEIGHT 16
#define XSH_WIDGET_PADDING 2
#define XSH_FONT_HEIGHT(xsh) (xsh->gui.font->max_bounds.ascent\
+ xsh->gui.font->max_bounds.descent)
@@ -38,9 +36,15 @@
#define XSH_WIDGET_WIDTH_FOR_WORD(xsh) \
(XSH_WORD_WIDTH(xsh)*XSH_WIDGET_PADDING)
+//#define XSH_WIDGET_HEIGHT 16
+#define XSH_WIDGET_HEIGHT (XSH_WIDGET_HEIGHT_FOR_FONT(xsh))
+//#define XSH_WIDGET_WIDTH (XSH_FONT_WIDTH(xsh)*16+XSH_WIDGET_PADDING*2)
+#define XSH_WIDGET_WIDTH 96
+
#define XSH_STOP_LAYOUT (1<<31)
void
xsh_layout_widgets(XShell * xsh);
+
#endif /* XSH_LAYOUT_H */
Index: xshell.c
===================================================================
RCS file: /sources/antiright/antiright/xshell/xshell.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- xshell.c 20 Aug 2007 19:55:25 -0000 1.7
+++ xshell.c 1 Sep 2007 18:13:07 -0000 1.8
@@ -23,20 +23,29 @@
#include "xshell.h"
-#define SETUP_XSHELL_GUI_LAYOUT(layout)\
- layout.row_count=0;\
- layout.column_count=0;\
- layout.max_row_count=XSH_ROWS_PER_COLUMN;\
- layout.widget_width=XSH_WIDGET_WIDTH;
-
-#define SETUP_XSHELL_GUI(gui)\
- gui.widgets=NULL;\
- gui.widget_count=0;\
- SETUP_XSHELL_GUI_LAYOUT(gui.layout);
-
-#define SETUP_XSHELL(xsh)\
- xsh.options=0;\
- SETUP_XSHELL_GUI(xsh.gui);
+static void
+setup_xshell_gui_layout(XShell * xsh, XShellGUILayout * layout)
+{
+ layout->row_count=0;
+ layout->column_count=0;
+ layout->max_row_count=XSH_ROWS_PER_COLUMN;
+ layout->widget_width=XSH_WIDGET_WIDTH;
+}
+
+static void
+setup_xshell_gui(XShell * xsh, XShellGUI * gui)
+{
+ gui->widgets=NULL;
+ gui->widget_count=0;
+ setup_xshell_gui_layout(xsh, &(gui->layout));
+}
+
+static void
+setup_xshell(XShell * xsh)
+{
+ xsh->options=0;
+ setup_xshell_gui(xsh, &(xsh->gui));
+}
static void
delete_widgets(XWidget * head)
@@ -90,10 +99,13 @@
xsh_set_font(xsh, "-misc-fixed-medium-r-*-*-14-*-*-*-*-*-*-*");
}
-#define APPLY_TOPLEVEL_GEOMETRY(xsh)\
- XMoveWindow(xsh.gui.display, xsh.gui.widgets->window,\
- xsh.gui.widgets->geometry.x,\
- xsh.gui.widgets->geometry.y);\
+static void
+apply_toplevel_geometry(XShell * xsh)
+{
+ XMoveWindow(xsh->gui.display, xsh->gui.widgets->window,
+ xsh->gui.widgets->geometry.x,
+ xsh->gui.widgets->geometry.y);
+}
int
main(int argc, char ** argv)
@@ -102,7 +114,7 @@
if(argc<=1)
xsh_show_usage_and_exit();
- SETUP_XSHELL(xsh);
+ setup_xshell(&xsh);
xsh.gui.display=XOpenDisplay(NULL);
setup_main_window(&xsh);
#ifdef XSH_USE_GRADIENT
@@ -111,7 +123,7 @@
xsh_parse_arguments(&xsh, argc, argv);
show_main_window(&xsh);
xsh_layout_widgets(&xsh);
- APPLY_TOPLEVEL_GEOMETRY(xsh);
+ apply_toplevel_geometry(&xsh);
xsh_event_loop(&xsh);
cleanup(&xsh);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Antiright-devel] antiright/xshell arguments.c button.c layout.h ...,
Jeffrey Bedard <=