Add RoundedScreenCorners config setting

This setting enables drawing of all rounded screen corners

(small interesting thing: Mac OS 9 had rounded screen corners but
they must've disabled them later because I don't have them on my
snow 2003 iBook G3.)
This commit is contained in:
TheMorc 2021-03-06 19:35:32 +01:00
parent 4910df83f7
commit 8370be7cc1
3 changed files with 55 additions and 49 deletions

View File

@ -713,6 +713,11 @@ void SetEdgeResist( char *line, FILE *fp )
} }
} }
void SetRoundedCorners( char *line, FILE *fp )
{
Scr.flags |= ROUNDEDCORNERS;
}
config_func main_config[]={ config_func main_config[]={
{ "Desktopnum", SetDeskTopNum }, { "Desktopnum", SetDeskTopNum },
{ "DoubleClickTime", SetDoubleClickTime }, { "DoubleClickTime", SetDoubleClickTime },
@ -734,6 +739,7 @@ config_func main_config[]={
{ "Menu", SetMenu}, { "Menu", SetMenu},
{ "Read", ReadNewConfigFile }, { "Read", ReadNewConfigFile },
{ "RestartPreviousState", SetRstPrevState }, { "RestartPreviousState", SetRstPrevState },
{ "RoundedScreenCorners", SetRoundedCorners },
{ "ScrollBarWidth", SetBarWidth }, { "ScrollBarWidth", SetBarWidth },
{ "ShadeMap", SetShadeMap }, { "ShadeMap", SetShadeMap },
{ "ShortCut", SetShortCut }, { "ShortCut", SetShortCut },

View File

@ -120,27 +120,32 @@ void RedrawMenuBar( void )
if( Scr.flags&SYSTEM8 ) if( Scr.flags&SYSTEM8 )
DrawShadowBox( 0, 0, Scr.MyDisplayWidth, MENUB_H, Scr.MenuBar, 1, DrawShadowBox( 0, 0, Scr.MyDisplayWidth, MENUB_H, Scr.MenuBar, 1,
Scr.WhiteGC, Scr.Gray1GC, SHADOW_ALL ); Scr.WhiteGC, Scr.Gray1GC, SHADOW_ALL );
XFillRectangle( dpy, Scr.MenuBar, Scr.BlackGC, 0, 0, 7, 7 ); if(Scr.flags&ROUNDEDCORNERS){
XFillRectangle( dpy, Scr.MenuBar, XFillRectangle( dpy, Scr.MenuBar, Scr.BlackGC, 0, 0, 7, 7 );
Scr.BlackGC, Scr.MyDisplayWidth-7, 0, 7, 7 ); XFillRectangle( dpy, Scr.MenuBar,
if( Scr.flags&SYSTEM8 && !(Scr.flags&STARTING) ){ Scr.BlackGC, Scr.MyDisplayWidth-7, 0, 7, 7 );
for( lp=0; lp<2; lp++ ){ if( Scr.flags&SYSTEM8 && !(Scr.flags&STARTING) ){
XDrawArc( dpy, Scr.MenuBar, Scr.WhiteGC, 0, 0, for( lp=0; lp<2; lp++ ){
14-lp, 14-lp, 180*64, -(90*64) ); XDrawArc( dpy, Scr.MenuBar, Scr.WhiteGC, 0, 0,
XDrawArc( dpy, Scr.MenuBar, Scr.Gray1GC, Scr.MyDisplayWidth-15, 0, 14-lp, 14-lp, 180*64, -(90*64) );
14-lp, 14-lp, 0, 90*64 ); XDrawArc( dpy, Scr.MenuBar, Scr.Gray1GC, Scr.MyDisplayWidth-15, 0,
} 14-lp, 14-lp, 0, 90*64 );
XFillArc( dpy, Scr.MenuBar, Scr.MenuBlueGC, 0, 0, }
14, 14, 180*64, -(90*64) ); XFillArc( dpy, Scr.MenuBar, Scr.MenuBlueGC, 0, 0,
XFillArc( dpy, Scr.MenuBar, Scr.MenuBlueGC, Scr.MyDisplayWidth-15, 0, 14, 14, 180*64, -(90*64) );
14, 14, 0, 90*64 ); XFillArc( dpy, Scr.MenuBar, Scr.MenuBlueGC, Scr.MyDisplayWidth-15, 0,
} 14, 14, 0, 90*64 );
else{ }
XFillArc( dpy, Scr.MenuBar, Scr.WhiteGC, 0, 0, else{
14, 14, 180*64, -(90*64) ); XFillArc( dpy, Scr.MenuBar, Scr.WhiteGC, 0, 0,
XFillArc( dpy, Scr.MenuBar, Scr.WhiteGC, Scr.MyDisplayWidth-15, 0, 14, 14, 180*64, -(90*64) );
14, 14, 0, 90*64 ); XFillArc( dpy, Scr.MenuBar, Scr.WhiteGC, Scr.MyDisplayWidth-15, 0,
} 14, 14, 0, 90*64 );
}
XMapWindow( dpy, Scr.lbCorner );
XMapWindow( dpy, Scr.rbCorner );
}
if( !(Scr.flags&SYSTEM8) ) if( !(Scr.flags&SYSTEM8) )
XDrawLine( dpy, Scr.MenuBar, Scr.BlackGC, XDrawLine( dpy, Scr.MenuBar, Scr.BlackGC,
0, MENUB_H-1, Scr.MyDisplayWidth, MENUB_H-1 ); 0, MENUB_H-1, Scr.MyDisplayWidth, MENUB_H-1 );
@ -1293,30 +1298,26 @@ Window PixmapWin (char **data_xpm, Window root, int x, int y)
void CreateMenuBar( void ) void CreateMenuBar( void )
{ {
static char *lbot_xpm[] = { static char *lbot_xpm[] = {
"7 7 2 1", "5 5 2 1",
" c none s none", " c none s none",
"# c black", "# c black",
"# ", "# ",
"# ", "# ",
"# ", "## ",
"## ", "### ",
"### ", "#####"
"#### ", };
"#######" static char *rbot_xpm[] = {
}; "5 5 2 1",
static char *rbot_xpm[] = { " c none s none",
"7 7 2 1", "# c black",
" c none s none", " #",
"# c black", " #",
" #", " ##",
" #", " ###",
" #", "#####"
" ##", };
" ###",
" ####",
"#######"
};
unsigned long valuemask; unsigned long valuemask;
XSetWindowAttributes attributes; XSetWindowAttributes attributes;
@ -1331,11 +1332,9 @@ void CreateMenuBar( void )
CopyFromParent, InputOutput, CopyFromParent, CopyFromParent, InputOutput, CopyFromParent,
valuemask, &attributes ); valuemask, &attributes );
XMapWindow( dpy, Scr.MenuBar ); XMapWindow( dpy, Scr.MenuBar );
Scr.lbCorner = PixmapWin( lbot_xpm, Scr.Root, 0, -1 ); Scr.lbCorner = PixmapWin( lbot_xpm, Scr.Root, 0, -1 );
XMapWindow( dpy, Scr.lbCorner ); Scr.rbCorner = PixmapWin( rbot_xpm, Scr.Root, -1, -1 );
Scr.rbCorner = PixmapWin( rbot_xpm, Scr.Root, -1, -1 );
XMapWindow( dpy, Scr.rbCorner );
RedrawMenuBar( ); RedrawMenuBar( );
} }

View File

@ -141,6 +141,7 @@ typedef struct ScreenInfo
#define OPAQUERESIZE 0x00008000 #define OPAQUERESIZE 0x00008000
#define ONECLICKMENU 0x00010000 #define ONECLICKMENU 0x00010000
#define DEBUGOUT 0x00020000 #define DEBUGOUT 0x00020000
#define ROUNDEDCORNERS 0x00040000
#ifdef USE_LOCALE #ifdef USE_LOCALE
#define MENUBARFONT Scr.MenuBarFs #define MENUBARFONT Scr.MenuBarFs