recent components are in paned window (can be resized)
This commit is contained in:
parent
0bb4c9f2e0
commit
3e6815ccc5
|
|
@ -1919,11 +1919,12 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
|
|||
if(xctx->semaphore >= 2) break;
|
||||
descend_symbol();break;
|
||||
}
|
||||
if((key==XK_Insert && state == ShiftMask)) /* insert sym */
|
||||
if((key==XK_Insert && state & ShiftMask)) /* insert sym */
|
||||
{
|
||||
tcleval("load_file_dialog {Insert symbol} .sym INITIALINSTDIR 2");
|
||||
break;
|
||||
}
|
||||
if((key==XK_Insert && state == 0) || (key == 'I' && state == ShiftMask) ) /* insert sym */
|
||||
if(key==XK_Insert || (key == 'I' && state == ShiftMask) ) /* insert sym */
|
||||
{
|
||||
if(xctx->semaphore >= 2) break;
|
||||
start_place_symbol(mx, my);
|
||||
|
|
|
|||
|
|
@ -420,7 +420,7 @@ void break_wires_at_pins(void)
|
|||
xctx->wire[xctx->wires].y1=xctx->wire[i].y1;
|
||||
xctx->wire[xctx->wires].x2=x0;
|
||||
xctx->wire[xctx->wires].y2=y0;
|
||||
xctx->wire[xctx->wires].sel=SELECTED;
|
||||
xctx->wire[xctx->wires].sel=0;
|
||||
xctx->wire[xctx->wires].prop_ptr=NULL;
|
||||
my_strdup(31, &xctx->wire[xctx->wires].prop_ptr, xctx->wire[i].prop_ptr);
|
||||
if(!strcmp(get_tok_value(xctx->wire[xctx->wires].prop_ptr,"bus",0), "true"))
|
||||
|
|
@ -476,7 +476,7 @@ void break_wires_at_pins(void)
|
|||
xctx->wire[xctx->wires].y1=xctx->wire[i].y1;
|
||||
xctx->wire[xctx->wires].x2=x0;
|
||||
xctx->wire[xctx->wires].y2=y0;
|
||||
xctx->wire[xctx->wires].sel=SELECTED;
|
||||
xctx->wire[xctx->wires].sel=0;
|
||||
xctx->wire[xctx->wires].prop_ptr=NULL;
|
||||
my_strdup(33, &xctx->wire[xctx->wires].prop_ptr, xctx->wire[i].prop_ptr);
|
||||
if(!strcmp(get_tok_value(xctx->wire[xctx->wires].prop_ptr,"bus",0), "true"))
|
||||
|
|
|
|||
14
src/draw.c
14
src/draw.c
|
|
@ -834,18 +834,14 @@ static void my_cairo_drawpoints(cairo_t *ct, int layer, XPoint *points, int npoi
|
|||
cairo_stroke(ct); /* This lines need to be here */
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(__unix__) && defined(HAS_CAIRO)
|
||||
static void check_cairo_drawline(void *cr, int layer, double x1, double y1, double x2, double y2, int dash)
|
||||
{
|
||||
if (cr==NULL) return;
|
||||
cairo_t *ct = (cairo_t *)cr;
|
||||
my_cairo_drawline(cr, layer, x1, y1, x2, y2, dash);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(__unix__) && defined(HAS_CAIRO)
|
||||
static void check_cairo_drawpoints(void *cr, int layer, XPoint *points, int npoints)
|
||||
{
|
||||
if (cr==NULL) return;
|
||||
|
|
@ -883,7 +879,9 @@ void drawline(int c, int what, double linex1, double liney1, double linex2, doub
|
|||
XDrawLine(display, xctx->window, xctx->gc[c], rr[j].x1, rr[j].y1, rr[j].x2, rr[j].y2);
|
||||
if (xctx->draw_pixmap)
|
||||
XDrawLine(display, xctx->save_pixmap, xctx->gc[c], rr[j].x1, rr[j].y1, rr[j].x2, rr[j].y2);
|
||||
#if defined(HAS_CAIRO)
|
||||
check_cairo_drawline(ct, c, rr[j].x1, rr[j].y1, rr[j].x2, rr[j].y2, 0);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
i=0;
|
||||
|
|
@ -922,7 +920,7 @@ void drawline(int c, int what, double linex1, double liney1, double linex2, doub
|
|||
if(dash) {
|
||||
XSetLineAttributes (display, xctx->gc[c], INT_WIDTH(xctx->lw), LineSolid, CapRound, JoinRound);
|
||||
}
|
||||
#ifndef __unix__
|
||||
#if !defined(__unix__) && defined(HAS_CAIRO)
|
||||
check_cairo_drawline(ct, c, x1, y1, x2, y2, dash);
|
||||
#endif
|
||||
}
|
||||
|
|
@ -946,7 +944,7 @@ void drawline(int c, int what, double linex1, double liney1, double linex2, doub
|
|||
}
|
||||
if(xctx->draw_window) XDrawLine(display, xctx->window, xctx->gc[c], (int)x1, (int)y1, (int)x2, (int)y2);
|
||||
if(xctx->draw_pixmap) XDrawLine(display, xctx->save_pixmap, xctx->gc[c], (int)x1, (int)y1, (int)x2, (int)y2);
|
||||
#ifndef __unix__
|
||||
#if !defined(__unix__) && defined(HAS_CAIRO)
|
||||
check_cairo_drawline(ct, c, x1, y1, x2, y2, dash);
|
||||
#endif
|
||||
XSetLineAttributes (display, xctx->gc[c], INT_WIDTH(xctx->lw), LineSolid, CapRound , JoinRound);
|
||||
|
|
@ -963,7 +961,9 @@ void drawline(int c, int what, double linex1, double liney1, double linex2, doub
|
|||
XDrawLine(display, xctx->window, xctx->gc[c], rr[j].x1, rr[j].y1, rr[j].x2, rr[j].y2);
|
||||
if (xctx->draw_pixmap)
|
||||
XDrawLine(display, xctx->save_pixmap, xctx->gc[c], rr[j].x1, rr[j].y1, rr[j].x2, rr[j].y2);
|
||||
#if defined(HAS_CAIRO)
|
||||
check_cairo_drawline(ct, c, rr[j].x1, rr[j].y1, rr[j].x2, rr[j].y2, 0);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
i=0;
|
||||
|
|
@ -1924,7 +1924,7 @@ static void draw_graph_points(int idx, int first, int last,
|
|||
if(xctx->draw_pixmap) {
|
||||
XDrawLines(display, xctx->save_pixmap, xctx->gc[wave_col], point, poly_npoints, CoordModeOrigin);
|
||||
}
|
||||
#ifndef __unix__
|
||||
#if !defined(__unix__) && defined(HAS_CAIRO)
|
||||
check_cairo_drawpoints(ct, wave_col, point, poly_npoints);
|
||||
#endif
|
||||
set_thick_waves(0, wcnt, wave_col, gr);
|
||||
|
|
|
|||
|
|
@ -583,9 +583,15 @@ proc load_recent_file {} {
|
|||
-icon warning -parent . -type ok
|
||||
}
|
||||
}
|
||||
foreach i [info vars c_toolbar::c_t_*] {
|
||||
if {[set ${i}(w)] != $c_toolbar::c_t(w) ||
|
||||
[set ${i}(n)] != $c_toolbar::c_t(n)} {
|
||||
array unset $i
|
||||
}
|
||||
}
|
||||
set hash $c_toolbar::c_t(hash)
|
||||
if { [info exists c_toolbar::c_t_$hash]} {
|
||||
array set c_toolbar::c_t [array get c_toolbar::c_t_$hash]
|
||||
array set c_toolbar::c_t [array get c_toolbar::c_t_$hash]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2136,22 +2142,17 @@ proc hash_string {s} {
|
|||
namespace eval c_toolbar {
|
||||
# Create a variable inside the namespace
|
||||
variable c_t
|
||||
set c_t(w) .load.recent
|
||||
variable i
|
||||
set c_t(w) .load.l.recent
|
||||
set c_t(hash) [hash_string $XSCHEM_LIBRARY_PATH]
|
||||
|
||||
proc create {} {
|
||||
variable c_t
|
||||
if { ![info exists c_t(n)]} {
|
||||
set c_t(n) 30
|
||||
set c_t(top) 0
|
||||
for {set i 0} {$i < $c_t(n)} {incr i} {
|
||||
set c_t($i,text) {}
|
||||
set c_t($i,command) {}
|
||||
set c_t($i,file) {}
|
||||
}
|
||||
}
|
||||
set c_t(n) 25
|
||||
set c_t(top) 0
|
||||
for {set i 0} {$i < $c_t(n)} {incr i} {
|
||||
set c_t($i,text) {}
|
||||
set c_t($i,command) {}
|
||||
set c_t($i,file) {}
|
||||
}
|
||||
|
||||
|
||||
proc cleanup {} {
|
||||
variable c_t
|
||||
if {![info exists c_t(n)]} return
|
||||
|
|
@ -2186,7 +2187,6 @@ namespace eval c_toolbar {
|
|||
proc display {} {
|
||||
variable c_t
|
||||
if { [winfo exists $c_t(w)]} {
|
||||
create
|
||||
set w $c_t(w)
|
||||
set n $c_t(n)
|
||||
cleanup
|
||||
|
|
@ -2195,11 +2195,11 @@ namespace eval c_toolbar {
|
|||
destroy $w.b$i
|
||||
}
|
||||
set i $c_t(top)
|
||||
button $w.title -text Recent -pady 0 -padx 0 -width 13 -state disabled -disabledforeground black \
|
||||
button $w.title -text Recent -pady 0 -padx 0 -width 7 -state disabled -disabledforeground black \
|
||||
-background grey60 -highlightthickness 0 -borderwidth 0 -font {TkDefaultFont 12 bold}
|
||||
pack $w.title -side top -fill x
|
||||
while {1} {
|
||||
button $w.b$i -text $c_t($i,text) -pady 0 -padx 0 -command $c_t($i,command) -width 13
|
||||
button $w.b$i -text $c_t($i,text) -pady 0 -padx 0 -command $c_t($i,command) -width 7
|
||||
pack $w.b$i -side top -fill x
|
||||
set i [expr {($i + 1) % $n}]
|
||||
if { $i == $c_t(top) } break
|
||||
|
|
@ -2209,7 +2209,6 @@ namespace eval c_toolbar {
|
|||
|
||||
proc add {f} {
|
||||
variable c_t
|
||||
create
|
||||
for {set i 0} {$i < $c_t(n)} {incr i} {
|
||||
if { $c_t($i,file) eq $f } { return 0}
|
||||
}
|
||||
|
|
@ -2217,10 +2216,7 @@ namespace eval c_toolbar {
|
|||
set ret 1
|
||||
set i [expr { ($c_t(top)-1) % $c_t(n) } ];# last element
|
||||
set c_t($i,file) $f
|
||||
set c_t($i,command) "
|
||||
xschem abort_operation
|
||||
xschem place_symbol {$f}
|
||||
"
|
||||
set c_t($i,command) "xschem abort_operation; xschem place_symbol {$f}"
|
||||
set c_t($i,text) [file tail [file rootname $f]]
|
||||
set c_t(top) $i
|
||||
if {$ret} {write_recent_file}
|
||||
|
|
@ -2410,8 +2406,8 @@ proc load_file_dialog {{msg {}} {ext {}} {global_initdir {INITIALINSTDIR}}
|
|||
set myload_index1 0
|
||||
}
|
||||
set_ne myload_files2 {}
|
||||
if { $loadfile == 2} {frame .load.recent}
|
||||
panedwindow .load.l -orient horizontal
|
||||
if { $loadfile == 2} {frame .load.l.recent}
|
||||
frame .load.l.paneleft
|
||||
eval [subst {listbox .load.l.paneleft.list -listvariable myload_files1 -width 20 -height 12 \
|
||||
-yscrollcommand ".load.l.paneleft.yscroll set" -selectmode browse \
|
||||
|
|
@ -2450,6 +2446,10 @@ proc load_file_dialog {{msg {}} {ext {}} {global_initdir {INITIALINSTDIR}}
|
|||
pack .load.l.paneright.xscroll -side bottom -fill x
|
||||
pack .load.l.paneright.list -side bottom -fill both -expand true
|
||||
|
||||
if { $loadfile == 2} {
|
||||
.load.l add .load.l.recent -minsize 30
|
||||
c_toolbar::display
|
||||
}
|
||||
.load.l add .load.l.paneleft -minsize 40
|
||||
.load.l add .load.l.paneright -minsize 40
|
||||
# .load.l paneconfigure .load.l.paneleft -stretch always
|
||||
|
|
@ -2524,10 +2524,10 @@ proc load_file_dialog {{msg {}} {ext {}} {global_initdir {INITIALINSTDIR}}
|
|||
pack .load.buttons_bot.label -side left
|
||||
pack .load.buttons_bot.entry -side left -fill x -expand true
|
||||
pack .load.buttons_bot.cancel .load.buttons_bot.ok -side left
|
||||
if { $loadfile == 2} {
|
||||
pack .load.recent -side left -fill y
|
||||
c_toolbar::display
|
||||
}
|
||||
# if { $loadfile == 2} {
|
||||
# pack .load.recent -side left -fill y
|
||||
# c_toolbar::display
|
||||
# }
|
||||
pack .load.l -expand true -fill both
|
||||
pack .load.buttons -side top -fill x
|
||||
pack .load.buttons_bot -side top -fill x
|
||||
|
|
|
|||
Loading…
Reference in New Issue