mirror of
git://projects.qi-hardware.com/fped.git
synced 2024-11-25 12:42:49 +02:00
Added tooltips to all icons acting as buttons.
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5767 99fdad57-331a-0410-800a-d7fa5415bdb3
This commit is contained in:
parent
40028ed18f
commit
bdd6e95521
2
TODO
2
TODO
@ -27,7 +27,7 @@ Style and usability:
|
|||||||
- when changing the part, we should automatically switch to a configuration
|
- when changing the part, we should automatically switch to a configuration
|
||||||
that generates any of its (non-global) elements
|
that generates any of its (non-global) elements
|
||||||
- add zoom controls to top toolbar
|
- add zoom controls to top toolbar
|
||||||
- add tooltips
|
- add tooltips (in progress)
|
||||||
|
|
||||||
Bugs:
|
Bugs:
|
||||||
- default silk width has no business being hard-coded in obj.c
|
- default silk width has no business being hard-coded in obj.c
|
||||||
|
36
gui.c
36
gui.c
@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* gui.c - Editor GUI core
|
* gui.c - Editor GUI core
|
||||||
*
|
*
|
||||||
* Written 2009 by Werner Almesberger
|
* Written 2009, 2010 by Werner Almesberger
|
||||||
* Copyright 2009 by Werner Almesberger
|
* Copyright 2009, 2010 by Werner Almesberger
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -163,19 +163,27 @@ static void make_tool_bar(GtkWidget *hbox, GdkDrawable *drawable)
|
|||||||
//gtk_box_pack_end(GTK_BOX(hbox), bar, FALSE, FALSE, 0);
|
//gtk_box_pack_end(GTK_BOX(hbox), bar, FALSE, FALSE, 0);
|
||||||
gtk_toolbar_set_style(GTK_TOOLBAR(bar), GTK_TOOLBAR_ICONS);
|
gtk_toolbar_set_style(GTK_TOOLBAR(bar), GTK_TOOLBAR_ICONS);
|
||||||
|
|
||||||
ev_all = tool_button(bar, drawable, NULL, toggle_all, NULL);
|
ev_all = tool_button(bar, drawable, NULL, NULL, toggle_all, NULL);
|
||||||
ev_stuff = tool_button(bar, drawable, NULL, toggle_stuff, NULL);
|
ev_stuff = tool_button(bar, drawable, NULL, NULL, toggle_stuff, NULL);
|
||||||
ev_meas = tool_button(bar, drawable, NULL, toggle_meas, NULL);
|
ev_meas = tool_button(bar, drawable, NULL, NULL, toggle_meas, NULL);
|
||||||
ev_bright = tool_button(bar, drawable, NULL, toggle_bright, NULL);
|
ev_bright = tool_button(bar, drawable, NULL, NULL, toggle_bright, NULL);
|
||||||
|
|
||||||
stuff_image[0] = gtk_widget_ref(make_image(drawable, xpm_stuff_off));
|
stuff_image[0] = gtk_widget_ref(make_image(drawable, xpm_stuff_off,
|
||||||
stuff_image[1] = gtk_widget_ref(make_image(drawable, xpm_stuff));
|
"Show vectors and frame references (disabled)"));
|
||||||
meas_image[0] = gtk_widget_ref(make_image(drawable, xpm_meas_off));
|
stuff_image[1] = gtk_widget_ref(make_image(drawable, xpm_stuff,
|
||||||
meas_image[1] = gtk_widget_ref(make_image(drawable, xpm_meas));
|
"Show vectors and frame references (enabled)"));
|
||||||
all_image[0] = gtk_widget_ref(make_image(drawable, xpm_all_off));
|
meas_image[0] = gtk_widget_ref(make_image(drawable, xpm_meas_off,
|
||||||
all_image[1] = gtk_widget_ref(make_image(drawable, xpm_all));
|
"Show measurements (disabled)"));
|
||||||
bright_image[0] = gtk_widget_ref(make_image(drawable, xpm_bright_off));
|
meas_image[1] = gtk_widget_ref(make_image(drawable, xpm_meas,
|
||||||
bright_image[1] = gtk_widget_ref(make_image(drawable, xpm_bright));
|
"Show measurements (enabled)"));
|
||||||
|
all_image[0] = gtk_widget_ref(make_image(drawable, xpm_all_off,
|
||||||
|
"Show all frames (currently showing only the active frame)"));
|
||||||
|
all_image[1] = gtk_widget_ref(make_image(drawable, xpm_all,
|
||||||
|
"Show all frames (enabled)"));
|
||||||
|
bright_image[0] = gtk_widget_ref(make_image(drawable, xpm_bright_off,
|
||||||
|
"Highlight elements (disabled)"));
|
||||||
|
bright_image[1] = gtk_widget_ref(make_image(drawable, xpm_bright,
|
||||||
|
"Highlight elements (enabled)"));
|
||||||
|
|
||||||
set_image(ev_stuff, stuff_image[show_stuff]);
|
set_image(ev_stuff, stuff_image[show_stuff]);
|
||||||
set_image(ev_meas, meas_image[show_meas]);
|
set_image(ev_meas, meas_image[show_meas]);
|
||||||
|
36
gui_tool.c
36
gui_tool.c
@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* gui_tool.c - GUI, tool bar
|
* gui_tool.c - GUI, tool bar
|
||||||
*
|
*
|
||||||
* Written 2009 by Werner Almesberger
|
* Written 2009, 2010 by Werner Almesberger
|
||||||
* Copyright 2009 by Werner Almesberger
|
* Copyright 2009, 2010 by Werner Almesberger
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -1030,7 +1030,7 @@ GtkWidget *get_icon_by_inst(const struct inst *inst)
|
|||||||
default:
|
default:
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
return make_transparent_image(DA, image);
|
return make_transparent_image(DA, image, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1097,41 +1097,57 @@ GtkWidget *gui_setup_tools(GdkDrawable *drawable)
|
|||||||
GTK_ORIENTATION_VERTICAL);
|
GTK_ORIENTATION_VERTICAL);
|
||||||
|
|
||||||
ev_point = tool_button(bar, drawable, xpm_point,
|
ev_point = tool_button(bar, drawable, xpm_point,
|
||||||
|
"Select and move items",
|
||||||
tool_button_press_event, NULL);
|
tool_button_press_event, NULL);
|
||||||
ev_delete = tool_button(bar, drawable, NULL,
|
ev_delete = tool_button(bar, drawable, NULL, NULL,
|
||||||
tool_button_press_event, &delete_ops);
|
tool_button_press_event, &delete_ops);
|
||||||
tool_separator(bar);
|
tool_separator(bar);
|
||||||
tool_button(bar, drawable, xpm_vec,
|
tool_button(bar, drawable, xpm_vec,
|
||||||
|
"Add a vector",
|
||||||
tool_button_press_event, &vec_ops);
|
tool_button_press_event, &vec_ops);
|
||||||
ev_frame = tool_button(bar, drawable, NULL,
|
ev_frame = tool_button(bar, drawable, NULL, NULL,
|
||||||
tool_button_press_event, &frame_ops);
|
tool_button_press_event, &frame_ops);
|
||||||
tool_button(bar, drawable, xpm_pad,
|
tool_button(bar, drawable, xpm_pad,
|
||||||
|
"Add a rectangular pad",
|
||||||
tool_button_press_event, &pad_ops);
|
tool_button_press_event, &pad_ops);
|
||||||
tool_button(bar, drawable, xpm_rpad,
|
tool_button(bar, drawable, xpm_rpad,
|
||||||
|
"Add a rounded pad",
|
||||||
tool_button_press_event, &rpad_ops);
|
tool_button_press_event, &rpad_ops);
|
||||||
tool_button(bar, drawable, xpm_line,
|
tool_button(bar, drawable, xpm_line,
|
||||||
|
"Add a silk screen line",
|
||||||
tool_button_press_event, &line_ops);
|
tool_button_press_event, &line_ops);
|
||||||
tool_button(bar, drawable, xpm_rect,
|
tool_button(bar, drawable, xpm_rect,
|
||||||
|
"Add a silk screen rectangle",
|
||||||
tool_button_press_event, &rect_ops);
|
tool_button_press_event, &rect_ops);
|
||||||
tool_button(bar, drawable, xpm_circ,
|
tool_button(bar, drawable, xpm_circ,
|
||||||
|
"Add a silk screen circle or arc",
|
||||||
tool_button_press_event, &circ_ops);
|
tool_button_press_event, &circ_ops);
|
||||||
tool_separator(bar);
|
tool_separator(bar);
|
||||||
tool_button(bar, drawable, xpm_meas,
|
tool_button(bar, drawable, xpm_meas,
|
||||||
|
"Add a measurement",
|
||||||
tool_button_press_event, &tool_meas_ops);
|
tool_button_press_event, &tool_meas_ops);
|
||||||
tool_button(bar, drawable, xpm_meas_x,
|
tool_button(bar, drawable, xpm_meas_x,
|
||||||
|
"Add a horizontal measurement",
|
||||||
tool_button_press_event, &tool_meas_ops_x);
|
tool_button_press_event, &tool_meas_ops_x);
|
||||||
tool_button(bar, drawable, xpm_meas_y,
|
tool_button(bar, drawable, xpm_meas_y,
|
||||||
|
"Add a vertical measurement",
|
||||||
tool_button_press_event, &tool_meas_ops_y);
|
tool_button_press_event, &tool_meas_ops_y);
|
||||||
|
|
||||||
frame_image = gtk_widget_ref(make_image(drawable, xpm_frame));
|
frame_image = gtk_widget_ref(make_image(drawable, xpm_frame,
|
||||||
|
"Step 1: select the current frame for insertion"));
|
||||||
frame_image_locked =
|
frame_image_locked =
|
||||||
gtk_widget_ref(make_image(drawable, xpm_frame_locked));
|
gtk_widget_ref(make_image(drawable, xpm_frame_locked,
|
||||||
|
"Step 2: select the frame into which to insert"));
|
||||||
frame_image_ready =
|
frame_image_ready =
|
||||||
gtk_widget_ref(make_image(drawable, xpm_frame_ready));
|
gtk_widget_ref(make_image(drawable, xpm_frame_ready,
|
||||||
|
"Final step: add the frame reference to an anchor point "
|
||||||
|
"(vector or origin)"));
|
||||||
set_frame_image(frame_image);
|
set_frame_image(frame_image);
|
||||||
|
|
||||||
delete_image[0] = gtk_widget_ref(make_image(drawable, xpm_delete_off));
|
delete_image[0] = gtk_widget_ref(make_image(drawable, xpm_delete_off,
|
||||||
delete_image[1] = gtk_widget_ref(make_image(drawable, xpm_delete));
|
NULL));
|
||||||
|
delete_image[1] = gtk_widget_ref(make_image(drawable, xpm_delete,
|
||||||
|
"Delete the selected item"));
|
||||||
set_image(ev_delete, delete_image[0]);
|
set_image(ev_delete, delete_image[0]);
|
||||||
|
|
||||||
tool_reset();
|
tool_reset();
|
||||||
|
18
gui_util.c
18
gui_util.c
@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* gui_util.c - GUI helper functions
|
* gui_util.c - GUI helper functions
|
||||||
*
|
*
|
||||||
* Written 2009 by Werner Almesberger
|
* Written 2009, 2010 by Werner Almesberger
|
||||||
* Copyright 2009 by Werner Almesberger
|
* Copyright 2009, 2010 by Werner Almesberger
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -172,7 +172,7 @@ void label_in_box_bg(GtkWidget *label, const char *color)
|
|||||||
/* ----- generate a tool button with an XPM image -------------------------- */
|
/* ----- generate a tool button with an XPM image -------------------------- */
|
||||||
|
|
||||||
|
|
||||||
GtkWidget *make_image(GdkDrawable *drawable, char **xpm)
|
GtkWidget *make_image(GdkDrawable *drawable, char **xpm, const char *tooltip)
|
||||||
{
|
{
|
||||||
GdkPixmap *pixmap;
|
GdkPixmap *pixmap;
|
||||||
GtkWidget *image;
|
GtkWidget *image;
|
||||||
@ -181,11 +181,14 @@ GtkWidget *make_image(GdkDrawable *drawable, char **xpm)
|
|||||||
pixmap = gdk_pixmap_create_from_xpm_d(drawable, NULL, &white, xpm);
|
pixmap = gdk_pixmap_create_from_xpm_d(drawable, NULL, &white, xpm);
|
||||||
image = gtk_image_new_from_pixmap(pixmap, NULL);
|
image = gtk_image_new_from_pixmap(pixmap, NULL);
|
||||||
gtk_misc_set_padding(GTK_MISC(image), 1, 1);
|
gtk_misc_set_padding(GTK_MISC(image), 1, 1);
|
||||||
|
if (tooltip)
|
||||||
|
gtk_widget_set_tooltip_markup(image, tooltip);
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GtkWidget *make_transparent_image(GdkDrawable *drawable, char **xpm)
|
GtkWidget *make_transparent_image(GdkDrawable *drawable, char **xpm,
|
||||||
|
const char *tooltip)
|
||||||
{
|
{
|
||||||
GdkPixmap *pixmap;
|
GdkPixmap *pixmap;
|
||||||
GdkBitmap *mask;
|
GdkBitmap *mask;
|
||||||
@ -194,6 +197,8 @@ GtkWidget *make_transparent_image(GdkDrawable *drawable, char **xpm)
|
|||||||
pixmap = gdk_pixmap_create_from_xpm_d(drawable, &mask, NULL, xpm);
|
pixmap = gdk_pixmap_create_from_xpm_d(drawable, &mask, NULL, xpm);
|
||||||
image = gtk_image_new_from_pixmap(pixmap, mask);
|
image = gtk_image_new_from_pixmap(pixmap, mask);
|
||||||
gtk_misc_set_padding(GTK_MISC(image), 1, 1);
|
gtk_misc_set_padding(GTK_MISC(image), 1, 1);
|
||||||
|
if (tooltip)
|
||||||
|
gtk_widget_set_tooltip_markup(image, tooltip);
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,7 +223,8 @@ void set_image(GtkWidget *widget, GtkWidget *image)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GtkWidget *tool_button(GtkWidget *bar, GdkDrawable *drawable, char **xpm,
|
GtkWidget *tool_button(GtkWidget *bar, GdkDrawable *drawable,
|
||||||
|
char **xpm, const char *tooltip,
|
||||||
gboolean (*cb)(GtkWidget *widget, GdkEventButton *event, gpointer data),
|
gboolean (*cb)(GtkWidget *widget, GdkEventButton *event, gpointer data),
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
@ -233,7 +239,7 @@ GtkWidget *tool_button(GtkWidget *bar, GdkDrawable *drawable, char **xpm,
|
|||||||
|
|
||||||
evbox = gtk_event_box_new();
|
evbox = gtk_event_box_new();
|
||||||
if (xpm) {
|
if (xpm) {
|
||||||
image = make_image(drawable, xpm);
|
image = make_image(drawable, xpm, tooltip);
|
||||||
gtk_container_add(GTK_CONTAINER(evbox), image);
|
gtk_container_add(GTK_CONTAINER(evbox), image);
|
||||||
}
|
}
|
||||||
g_signal_connect(G_OBJECT(evbox), "button_press_event",
|
g_signal_connect(G_OBJECT(evbox), "button_press_event",
|
||||||
|
14
gui_util.h
14
gui_util.h
@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* gui_util.h - GUI helper functions
|
* gui_util.h - GUI helper functions
|
||||||
*
|
*
|
||||||
* Written 2009 by Werner Almesberger
|
* Written 2009, 2010 by Werner Almesberger
|
||||||
* Copyright 2009 by Werner Almesberger
|
* Copyright 2009, 2010 by Werner Almesberger
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -59,10 +59,14 @@ void label_in_box_bg(GtkWidget *box, const char *color);
|
|||||||
|
|
||||||
void vacate_widget(GtkWidget *widget);
|
void vacate_widget(GtkWidget *widget);
|
||||||
|
|
||||||
GtkWidget *make_image(GdkDrawable *drawable, char **xpm);
|
/* tooltips are optional (use NULL for none) */
|
||||||
GtkWidget *make_transparent_image(GdkDrawable *drawable, char **xpm);
|
|
||||||
|
GtkWidget *make_image(GdkDrawable *drawable, char **xpm, const char *tooltip);
|
||||||
|
GtkWidget *make_transparent_image(GdkDrawable *drawable, char **xpm,
|
||||||
|
const char *tooltip);
|
||||||
void set_image(GtkWidget *widget, GtkWidget *image);
|
void set_image(GtkWidget *widget, GtkWidget *image);
|
||||||
GtkWidget *tool_button(GtkWidget *bar, GdkDrawable *drawable, char **xpm,
|
GtkWidget *tool_button(GtkWidget *bar, GdkDrawable *drawable,
|
||||||
|
char **xpm, const char *tooltip,
|
||||||
gboolean (*cb)(GtkWidget *widget, GdkEventButton *event, gpointer data),
|
gboolean (*cb)(GtkWidget *widget, GdkEventButton *event, gpointer data),
|
||||||
gpointer data);
|
gpointer data);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user