button press on a tab, hold button and drag onto another tab --> swap tabs

This commit is contained in:
Stefan Frederik 2022-01-12 23:55:46 +01:00
parent 88945158e2
commit 772a6c9f39
5 changed files with 68 additions and 9 deletions

View File

@ -312,13 +312,6 @@ set editor {notepad.exe}
#### set bespice wave listening port; default: not enabled
# set bespice_listen_port 2022
###########################################################################
#### UTILE SPICE STIMULI DESCRIPTION LANGUAGE AND TRANSLATOR
###########################################################################
#### default paths are set as shown here:
# set utile_gui_path ${XSCHEM_SHAREDIR}/utile/utile3
# set utile_cmd_path ${XSCHEM_SHAREDIR}/utile/utile
###########################################################################
#### TCL FILES TO LOAD AT STARTUP
###########################################################################
@ -333,3 +326,9 @@ set editor {notepad.exe}
set toolbar_visible 1
# set toolbar_horiz 1
###########################################################################
#### TABBED WINDOWS
###########################################################################
# default: not enabled. Interface can be changed runtime if only one window
# or tab is open.
# set tabbed_interface 1

View File

@ -128,6 +128,47 @@ int find_gl_vao(const char *name, int logdepth, int fatal, const char *call, con
return try_fail(logdepth, node);
}
int find_gl_fb_attachment(const char *name, int logdepth, int fatal, const char *call, const char *arg)
{
const char *test_c_templ =
NL "#include <stdio.h>"
NL "#include <%s/gl.h>"
NL "int main()"
NL "{"
NL " int stencil_bits;"
NL " glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE, &stencil_bits);"
NL " return 0;"
NL "}"
NL;
char test_c[512];
const char *node = "libs/gui/gl/fb_attachment";
const char *cflags, *ldflags, *incs, *ip;
(void) call; /* not used */
(void) arg; /* not used */
if (require("cc/cc", logdepth, fatal))
return try_fail(logdepth, node);
if (require("libs/gui/gl/*", logdepth, fatal))
return try_fail(logdepth, node);
cflags = get("libs/gui/gl/cflags");
ldflags = get("libs/gui/gl/ldflags");
incs = get("libs/gui/gl/includes");
ip = get("libs/gui/gl/include_prefix");
report("Checking for gl framebuffer attachment... ");
logprintf(logdepth, "find_gl_fb_attachment...\n");
logdepth++;
sprintf(test_c, test_c_templ, ip);
if (try_icl_norun(logdepth, node, test_c, incs, cflags, ldflags) != 0)
return 0;
return try_fail(logdepth, node);
}
int find_glu(const char *name, int logdepth, int fatal, const char *call, const char *arg)
{

View File

@ -1,5 +1,6 @@
int find_gl(const char *name, int logdepth, int fatal);
int find_gl_vao(const char *name, int logdepth, int fatal);
int find_gl_fb_attachment(const char *name, int logdepth, int fatal, const char *call, const char *arg);
int find_glu(const char *name, int logdepth, int fatal);
int find_glut(const char *name, int logdepth, int fatal);

View File

@ -42,6 +42,7 @@ void deps_gui_init()
dep_add("libs/gui/cairo-xcb/*", find_cairo_xcb);
dep_add("libs/gui/gl/*", find_gl);
dep_add("libs/gui/gl/vao/*", find_gl_vao);
dep_add("libs/gui/gl/fb_attachment/*", find_gl_fb_attachment);
dep_add("libs/gui/glu/*", find_glu);
dep_add("libs/gui/glut/*", find_glut);
dep_add("libs/gui/wgl/*", find_gui_wgl);

View File

@ -1644,6 +1644,7 @@ int Tcl_AppInit(Tcl_Interp *inter)
{
char name[PATH_MAX]; /* overflow safe 20161122 */
char tmp[2*PATH_MAX+100]; /* 20161122 overflow safe */
char install_dir[PATH_MAX] = "";
int i;
double l_width;
struct stat buf;
@ -1735,7 +1736,6 @@ int Tcl_AppInit(Tcl_Interp *inter)
/* ... else give up searching, may set later after loading xschemrc */
}
#else
char install_dir[MAX_PATH]="";
char *up_hier=NULL, *win_xschem_library_path=NULL;
#define WIN_XSCHEM_LIBRARY_PATH_NUM 9
const char *WIN_XSCHEM_LIBRARY_PATH[WIN_XSCHEM_LIBRARY_PATH_NUM] = {
@ -1783,7 +1783,7 @@ int Tcl_AppInit(Tcl_Interp *inter)
}
}
else {
if (running_in_src_dir ==1) {
if (running_in_src_dir==1) {
/* pwd_dir can be working directory specified as "Working Directory" in settings */
my_snprintf(tmp, S(tmp), "%s/../../../src", install_dir);
}
@ -1839,11 +1839,28 @@ int Tcl_AppInit(Tcl_Interp *inter)
else {
/* get systemwide xschemrc ... */
if(tclgetvar("XSCHEM_SHAREDIR")) {
#ifndef __unix__
if (running_in_src_dir == 1) {
my_snprintf(name, S(name), "%s/../../XSchemWix/xschemrc", install_dir);
if (!stat(name, &buf)) {
dbg(1, "Tcl_AppInit(): sourcing %s\n", name);
source_tcl_file(name);
}
}
else {
my_snprintf(name, S(name), "%s/xschemrc", tclgetvar("XSCHEM_SHAREDIR"));
if (!stat(name, &buf)) {
dbg(1, "Tcl_AppInit(): sourcing %s\n", name);
source_tcl_file(name);
}
}
#else
my_snprintf(name, S(name), "%s/xschemrc",tclgetvar("XSCHEM_SHAREDIR"));
if(!stat(name, &buf)) {
dbg(1, "Tcl_AppInit(): sourcing %s\n", name);
source_tcl_file(name);
}
#endif
}
/* ... then source xschemrc in present directory if existing ... */
if(!running_in_src_dir) {