mirror of
git://projects.qi-hardware.com/fped.git
synced 2024-11-29 09:51:52 +02:00
- when selecting an object via the item list, make its frame active
- having variables and items on the screen at the same time was too much. We can now toggle with "/" while the canvas has the focus. (This needs better controls.) git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5425 99fdad57-331a-0410-800a-d7fa5415bdb3
This commit is contained in:
parent
a648cb888f
commit
2bae5614d9
1
README
1
README
@ -402,6 +402,7 @@ Space reset user coordinates
|
|||||||
* zoom and center to extents
|
* zoom and center to extents
|
||||||
# zoom and center to currently active frame instance
|
# zoom and center to currently active frame instance
|
||||||
U undelete the previously deleted object
|
U undelete the previously deleted object
|
||||||
|
/ Switch between variable and item display.
|
||||||
|
|
||||||
|
|
||||||
Canvas
|
Canvas
|
||||||
|
@ -349,6 +349,13 @@ static gboolean key_press_event(GtkWidget *widget, GdkEventKey *event,
|
|||||||
if (undelete())
|
if (undelete())
|
||||||
change_world();
|
change_world();
|
||||||
break;
|
break;
|
||||||
|
case '/':
|
||||||
|
{
|
||||||
|
/* @@@ find a better place for this */
|
||||||
|
extern int show_vars;
|
||||||
|
show_vars = !show_vars;
|
||||||
|
change_world();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
35
gui_frame.c
35
gui_frame.c
@ -30,6 +30,9 @@
|
|||||||
#include "gui_frame.h"
|
#include "gui_frame.h"
|
||||||
|
|
||||||
|
|
||||||
|
int show_vars = 1;
|
||||||
|
|
||||||
|
|
||||||
/* ----- popup dispatcher -------------------------------------------------- */
|
/* ----- popup dispatcher -------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
@ -1003,7 +1006,7 @@ static GtkWidget *item_label(GtkWidget *tab, char *s, int col, int row,
|
|||||||
|
|
||||||
static GtkWidget *build_items(struct frame *frame)
|
static GtkWidget *build_items(struct frame *frame)
|
||||||
{
|
{
|
||||||
GtkWidget *hbox, *tab;
|
GtkWidget *vbox, *hbox, *tab;
|
||||||
struct order *order, *item;
|
struct order *order, *item;
|
||||||
struct vec *vec;
|
struct vec *vec;
|
||||||
struct obj *obj;
|
struct obj *obj;
|
||||||
@ -1017,7 +1020,11 @@ static GtkWidget *build_items(struct frame *frame)
|
|||||||
if (obj->type != ot_meas)
|
if (obj->type != ot_meas)
|
||||||
n++;
|
n++;
|
||||||
|
|
||||||
|
vbox = gtk_vbox_new(FALSE, 0);
|
||||||
|
add_sep(vbox, 3);
|
||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 0);
|
hbox = gtk_hbox_new(FALSE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
|
||||||
|
|
||||||
tab = gtk_table_new(n, 2, FALSE);
|
tab = gtk_table_new(n, 2, FALSE);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), tab, FALSE, FALSE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), tab, FALSE, FALSE, 0);
|
||||||
@ -1043,13 +1050,13 @@ static GtkWidget *build_items(struct frame *frame)
|
|||||||
}
|
}
|
||||||
free(order);
|
free(order);
|
||||||
|
|
||||||
return hbox;
|
return vbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static GtkWidget *build_meas(struct frame *frame)
|
static GtkWidget *build_meas(struct frame *frame)
|
||||||
{
|
{
|
||||||
GtkWidget *hbox, *tab;
|
GtkWidget *vbox, *hbox, *tab;
|
||||||
struct obj *obj;
|
struct obj *obj;
|
||||||
int n;
|
int n;
|
||||||
char *s;
|
char *s;
|
||||||
@ -1059,7 +1066,11 @@ static GtkWidget *build_meas(struct frame *frame)
|
|||||||
if (obj->type == ot_meas)
|
if (obj->type == ot_meas)
|
||||||
n++;
|
n++;
|
||||||
|
|
||||||
|
vbox = gtk_vbox_new(FALSE, 0);
|
||||||
|
add_sep(vbox, 3);
|
||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 0);
|
hbox = gtk_hbox_new(FALSE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
|
||||||
|
|
||||||
tab = gtk_table_new(n, 2, FALSE);
|
tab = gtk_table_new(n, 2, FALSE);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), tab, FALSE, FALSE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), tab, FALSE, FALSE, 0);
|
||||||
@ -1074,7 +1085,7 @@ static GtkWidget *build_meas(struct frame *frame)
|
|||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return hbox;
|
return vbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1277,7 +1288,7 @@ void build_frames(GtkWidget *vbox)
|
|||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 0);
|
hbox = gtk_hbox_new(FALSE, 0);
|
||||||
|
|
||||||
tab = gtk_table_new(n*2+3, 3, FALSE);
|
tab = gtk_table_new(n*2+3, 2, FALSE);
|
||||||
gtk_table_set_row_spacings(GTK_TABLE(tab), 1);
|
gtk_table_set_row_spacings(GTK_TABLE(tab), 1);
|
||||||
gtk_table_set_col_spacings(GTK_TABLE(tab), 1);
|
gtk_table_set_col_spacings(GTK_TABLE(tab), 1);
|
||||||
|
|
||||||
@ -1297,24 +1308,24 @@ void build_frames(GtkWidget *vbox)
|
|||||||
gtk_table_attach_defaults(GTK_TABLE(tab), refs,
|
gtk_table_attach_defaults(GTK_TABLE(tab), refs,
|
||||||
1, 2, n*2+1, n*2+2);
|
1, 2, n*2+1, n*2+2);
|
||||||
|
|
||||||
|
if (show_vars) {
|
||||||
vars = build_vars(frame);
|
vars = build_vars(frame);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(tab), vars,
|
gtk_table_attach_defaults(GTK_TABLE(tab), vars,
|
||||||
1, 2, n*2+2, n*2+3);
|
1, 2, n*2+2, n*2+3);
|
||||||
|
} else {
|
||||||
items = build_items(frame);
|
items = build_items(frame);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(tab), items,
|
gtk_table_attach_defaults(GTK_TABLE(tab), items,
|
||||||
2, 3, n*2+2, n*2+3);
|
1, 2, n*2+2, n*2+3);
|
||||||
|
}
|
||||||
|
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
label = label_in_box_new(" ");
|
if (!show_vars) {
|
||||||
gtk_table_attach_defaults(GTK_TABLE(tab), box_of_label(label),
|
|
||||||
2, 3, n*2+1, n*2+2);
|
|
||||||
|
|
||||||
meas = build_meas(root_frame);
|
meas = build_meas(root_frame);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(tab), meas,
|
gtk_table_attach_defaults(GTK_TABLE(tab), meas,
|
||||||
2, 3, n*2+2, n*2+3);
|
1, 2, n*2+2, n*2+3);
|
||||||
|
}
|
||||||
|
|
||||||
gtk_widget_show_all(hbox);
|
gtk_widget_show_all(hbox);
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,9 @@
|
|||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
|
||||||
|
extern int show_vars;
|
||||||
|
|
||||||
|
|
||||||
void make_popups(void);
|
void make_popups(void);
|
||||||
|
|
||||||
void select_frame(struct frame *frame);
|
void select_frame(struct frame *frame);
|
||||||
|
4
inst.c
4
inst.c
@ -303,6 +303,8 @@ void inst_select_vec(const struct vec *vec)
|
|||||||
{
|
{
|
||||||
struct inst *inst;
|
struct inst *inst;
|
||||||
|
|
||||||
|
if (vec->frame != active_frame)
|
||||||
|
select_frame(vec->frame);
|
||||||
for (inst = insts[ip_vec]; inst; inst = inst->next)
|
for (inst = insts[ip_vec]; inst; inst = inst->next)
|
||||||
if (inst->vec == vec && inst->active) {
|
if (inst->vec == vec && inst->active) {
|
||||||
inst_deselect();
|
inst_deselect();
|
||||||
@ -318,6 +320,8 @@ void inst_select_obj(const struct obj *obj)
|
|||||||
enum inst_prio prio;
|
enum inst_prio prio;
|
||||||
struct inst *inst;
|
struct inst *inst;
|
||||||
|
|
||||||
|
if (obj->frame != active_frame)
|
||||||
|
select_frame(obj->frame);
|
||||||
FOR_INSTS_DOWN(prio, inst)
|
FOR_INSTS_DOWN(prio, inst)
|
||||||
if (inst->obj && inst->obj == obj && inst->active) {
|
if (inst->obj && inst->obj == obj && inst->active) {
|
||||||
inst_deselect();
|
inst_deselect();
|
||||||
|
Loading…
Reference in New Issue
Block a user