In article <[EMAIL PROTECTED]>, Tuomo Valkonen wrote:
> 
> The list of new ChangeLog entries is long time time, but I'm finally
> starting to get to what I started working on almost two years ago.

extremly well done, gratulations.

there was just the problem, that it won't startup without a
~/.ion-devel/saves/workspace*conf. This could be a major problem for
newcomers (on the other side, should a beginner use ion-devel?)

The problem that some application wouldn't gain new screen space is
gone. Good work.

Attached is a new version of my toggle_tabs patch... version <overflow>.
It is just a quick rediff verses the new ion-devel, i'm posting it to
get more feedback (well, i'm posting it to get _any_ feedback).

I don't know if you would prefer to the toggle_tab flag in ionframe or
genframe, but that's not a major problem <grin>. My main problem with
this patch till now is, that after applying it, ion won't display any
fonts (neither in query nor in frame tabs... everything else works like
a charm), I will look into this in the next hours.

any comments will be accepted (except "don't do it"),
andreas

--
diff -uNr ion-devel-2/ioncore/funtabs.c ion-devel-20030311/ioncore/funtabs.c
--- ion-devel-2/ioncore/funtabs.c       2003-03-11 21:39:44.000000000 +0100
+++ ion-devel-20030311/ioncore/funtabs.c        2003-03-09 12:17:40.000000000 +0100
@@ -86,7 +86,6 @@
        FN_VOID(generic, WGenFrame,     "genframe_p_resize",            
genframe_p_resize_setup),
        FN_VOID(generic, WGenFrame,     "genframe_p_tabdrag",           
genframe_p_tabdrag_setup),
        FN_VOID(generic, WGenFrame,     "genframe_p_switch_tab",        
genframe_switch_tab),
-       FN_VOID(generic, WGenFrame, "genframe_toggle_tab",              
genframe_toggle_tab),
 
        FN_VOID(generic, WGenFrame,     "genframe_move_current_tab_left", 
genframe_move_current_tab_left),
        FN_VOID(generic, WGenFrame,     "genframe_move_current_tab_right", 
genframe_move_current_tab_right),
diff -uNr ion-devel-2/ioncore/genframe.c ion-devel-20030311/ioncore/genframe.c
--- ion-devel-2/ioncore/genframe.c      2003-03-11 22:57:29.000000000 +0100
+++ ion-devel-20030311/ioncore/genframe.c       2003-03-10 23:01:36.000000000 +0100
@@ -638,16 +638,6 @@
        return FALSE;
 }
 
-void genframe_toggle_tab(WGenFrame *genframe)
-{
-       if(genframe->flags&WGENFRAME_TAB_HIDE)
-               genframe->flags&=!WGENFRAME_TAB_HIDE;
-       else
-               genframe->flags|=WGENFRAME_TAB_HIDE;
-       genframe_fit_managed(genframe);
-       genframe_draw(genframe,TRUE);
-}
-
 
 void genframe_draw_config_updated(WGenFrame *genframe)
 {
diff -uNr ion-devel-2/ioncore/genframe.h ion-devel-20030311/ioncore/genframe.h
--- ion-devel-2/ioncore/genframe.h      2003-03-11 21:33:24.000000000 +0100
+++ ion-devel-20030311/ioncore/genframe.h       2003-03-09 12:34:14.000000000 +0100
@@ -22,7 +22,6 @@
 
 #define WGENFRAME_TAB_DRAGGED 0x0001
 #define WGENFRAME_TRANSPARENT 0x0002
-#define WGENFRAME_TAB_HIDE    0x0004
 
 
 DECLOBJ(WGenFrame){
@@ -79,7 +78,6 @@
 extern int genframe_tab_at_x(const WGenFrame *genframe, int x);
 extern void genframe_move_current_tab_right(WGenFrame *genframe);
 extern void genframe_move_current_tab_left(WGenFrame *genframe);
-extern void genframe_toggle_tab(WGenFrame *genframe);
 
 /* Misc */
 extern WRegion *genframe_nth_managed(WGenFrame *genframe, uint n);
diff -uNr ion-devel-2/ionws/ionframe.c ion-devel-20030311/ionws/ionframe.c
--- ion-devel-2/ionws/ionframe.c        2003-03-11 23:01:12.000000000 +0100
+++ ion-devel-20030311/ionws/ionframe.c 2003-03-09 12:20:37.000000000 +0100
@@ -67,12 +67,11 @@
 
 
 static bool init_ionframe(WIonFrame *frame, WWindow *parent, WRectangle geom,
-                                                 int id, int flags)
+                                                 int id)
 {
        if(!init_genframe((WGenFrame*)frame, parent, geom, id))
                return FALSE;
        
-       frame->genframe.flags=flags;
        set_tab_spacing(frame);
        
        region_add_bindmap((WRegion*)frame, &(ionframe_bindmap), TRUE);
@@ -81,15 +80,15 @@
 }
 
 
-WIonFrame *create_ionframe(WWindow *parent, WRectangle geom, int id, int flags)
+WIonFrame *create_ionframe(WWindow *parent, WRectangle geom, int id)
 {
-       CREATETHING_IMPL(WIonFrame, ionframe, (p, parent, geom, id, flags));
+       CREATETHING_IMPL(WIonFrame, ionframe, (p, parent, geom, id));
 }
 
 
 WIonFrame* create_ionframe_simple(WWindow *parent, WRectangle geom)
 {
-       return create_ionframe(parent, geom, 0, 0);
+       return create_ionframe(parent, geom, 0);
 }
 
 
@@ -160,7 +159,7 @@
        geom->w-=2*grdata->spacing;
        geom->h-=2*grdata->spacing;
        
-       if(grdata->bar_inside_frame && !(frame->genframe.flags&WGENFRAME_TAB_HIDE)){
+       if(grdata->bar_inside_frame){
                geom->y+=grdata->bar_h+grdata->spacing;
                geom->h-=grdata->bar_h+grdata->spacing;
        }
@@ -223,7 +222,7 @@
        WScreen *scr=SCREEN_OF(frame);
        int bar_w, tab_w, textw, n;
        WRegion *sub;
-
+       
        {
                WRectangle geom;
                genframe_bar_geom((WGenFrame*)frame, &geom);
@@ -240,7 +239,7 @@
                }
        }
        
-       if(draw && !(frame->genframe.flags&WGENFRAME_TAB_HIDE))
+       if(draw)
                genframe_draw_bar((WGenFrame*)frame, TRUE);
 }
 
@@ -269,19 +268,15 @@
                XClearWindow(wglobal.dpy, WGENFRAME_WIN(frame));
        
        draw_border_inverted(dinfo, TRUE);
-
-       if(!(frame->genframe.flags&WGENFRAME_TAB_HIDE))
-               genframe_draw_bar((WGenFrame*)frame,
-                                               !complete || 
!grdata->bar_inside_frame);
+       
+       genframe_draw_bar((WGenFrame*)frame,
+                                         !complete || !grdata->bar_inside_frame);
 }
 
 
 void ionframe_draw_bar(const WIonFrame *frame, bool complete)
 {
        WGRData *grdata=GRDATA_OF(frame);
-
-       if(frame->genframe.flags&WGENFRAME_TAB_HIDE)
-               return;
        
        if(complete && !grdata->bar_inside_frame){
                WBorder bd=frame_border(grdata);
@@ -316,20 +311,17 @@
 /*{{{ Save/load */
 
 
-#define WRITE_INTEGER_OPTION(NAME, VALUE) 
{save_indent_line(file,lvl);fprintf(file,"%s %d\n", (NAME), (VALUE));}
 static bool ionframe_save_to_file(WIonFrame *ionframe, FILE *file, int lvl)
 {
        begin_saved_region((WRegion*)ionframe, file, lvl);
-       WRITE_INTEGER_OPTION("target_id", ionframe->genframe.target_id);
-       WRITE_INTEGER_OPTION("flags", ionframe->genframe.flags);
+       save_indent_line(file, lvl);
+       fprintf(file, "target_id %d\n", ionframe->genframe.target_id);
        end_saved_region((WRegion*)ionframe, file, lvl);
        return TRUE;
 }
-#undef WRITE_INTEGER_OPTION
 
 
 static int load_target_id;
-static int load_frame_flags;
 
 
 static bool opt_target_id(Tokenizer *tokz, int n, Token *toks)
@@ -338,18 +330,9 @@
        return TRUE;
 }
 
-static bool opt_frame_flags(Tokenizer *tokz, int n, Token *toks)
-{
-       load_frame_flags=TOK_LONG_VAL(&(toks[1]));
-       /* remove unneeded bits from flags
-          example: load_frame_flags &= (WGENFRAME_TAB_HIDE | WGENFRAME_*); */
-       load_frame_flags &= (WGENFRAME_TAB_HIDE);
-       return TRUE;
-}
 
 static ConfOpt ionframe_opts[]={
-       {"target_id",   "l", opt_target_id,     NULL},
-       {"flags",               "l", opt_frame_flags,   NULL},
+       {"target_id", "l", opt_target_id, NULL},
        END_CONFOPTS
 };
 
@@ -357,12 +340,11 @@
 WRegion *ionframe_load(WWindow *par, WRectangle geom, Tokenizer *tokz)
 {
        load_target_id=0;
-       load_frame_flags=0;
        
        if(!parse_config_tokz(tokz, ionframe_opts))
                return NULL;
        
-       return (WRegion*)create_ionframe(par, geom, load_target_id, load_frame_flags);
+       return (WRegion*)create_ionframe(par, geom, load_target_id);
 }
 
 
diff -uNr ion-devel-2/ionws/ionframe.h ion-devel-20030311/ionws/ionframe.h
--- ion-devel-2/ionws/ionframe.h        2003-03-11 21:29:50.000000000 +0100
+++ ion-devel-20030311/ionws/ionframe.h 2003-03-09 12:20:37.000000000 +0100
@@ -19,7 +19,7 @@
 };
 
 
-extern WIonFrame *create_ionframe(WWindow *parent, WRectangle geom, int id, int 
flags);
+extern WIonFrame *create_ionframe(WWindow *parent, WRectangle geom, int id);
 extern WIonFrame* create_ionframe_simple(WWindow *parent, WRectangle geom);
 extern void ionframe_draw_config_updated(WIonFrame *frame);
 extern void ionframe_draw_bar(const WIonFrame *frame, bool complete);
diff -uNr ion-devel-2/ionws/ionws.c ion-devel-20030311/ionws/ionws.c
--- ion-devel-2/ionws/ionws.c   2003-03-11 21:30:34.000000000 +0100
+++ ion-devel-20030311/ionws/ionws.c    2003-03-11 19:52:06.000000000 +0100
@@ -165,7 +165,7 @@
 {
        WIonFrame *frame;
        
-       frame=create_ionframe(parent, geom, 0,0);
+       frame=create_ionframe(parent, geom, 0);
 
        if(frame==NULL)
                return NULL;

Reply via email to