Logo Search packages:      
Sourcecode: sapphire version File versions  Download package

theme.hh

/*
 * Copyright (C) 1999,2000,2001 Frank Hale
 * frankhale@yahoo.com
 * http://sapphire.sourceforge.net/
 *
 * Updated: 3 Nov 2001
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */


#ifndef _THEME_HH_
#define _THEME_HH_

#define TOOLBAR_TOP                 (1<<1)
#define TOOLBAR_VISIBLE             (1<<2)

#define ROOT_ON                     (1<<1)
#define ROOT_OFF              (1<<2)

class Theme
{
private:
      XrmDatabase resource_db;
      
      char* currentTheme;
      
      char* font;
      char* menufont;

      XFontStruct *xfont;
      
      // Each array has 2 elements 
      // 
      //    0 = color_from used for gradients
      //    1 = color_to used for gradients
      //
      // If the image is supposed to be solid then the first color_from is used.
      //
      BColor client[2];
      BColor buttons[2];
      BColor clock[2];
      BColor menu[2];
      BColor menu_title[2];
      BColor menu_select[2];
      BColor toolbar[2];
      BColor root[2];
      BColor client_focus[2];
      BColor resize[2];
      BColor right_sidebar[2];
      BColor font_color[2];
      BColor menufont_color[2];
      
      // Bit masks for the different styles for window decorations
      unsigned long titlebar_style;
      unsigned long button_style;
      unsigned long toolbar_style;
      unsigned long toolbar_extra_style;
      unsigned long clock_style;
      unsigned long menu_style;
      unsigned long menu_title_style;
      unsigned long menu_select_style;
      unsigned long resize_style;
      unsigned long right_sidebar_style;
      unsigned long root_style;
      unsigned long root_extra_style;
      unsigned long font_style;

public:
      Theme();    // This creates the default theme
      ~Theme();   // This has no purpose since we don't dynamically allocate any memory

      char* getFont() const { return font; }
      char* getMenuFont() const { return menufont; }

      void parseTheme(char *themeFile);
      char* getCurrentTheme() const { return currentTheme; }
      unsigned long readDatabaseTexture(char *rname, char *rclass);

      void setFontStyle(unsigned long style)    { font_style=style; }
      unsigned long getFontStyle() const  { return font_style; }

      void setRootExtraStyle(unsigned long style)     { root_extra_style=style; }
      unsigned long getRootExtraStyle() const   { return root_extra_style; }

      void setRootStyle(unsigned long style)          { root_style=style; }
      unsigned long getRootStyle() const        { return root_style; }

      void setRightSidebarStyle(unsigned long style)  { right_sidebar_style=style; }
      unsigned long getRightSidebarStyle() const            { return right_sidebar_style; }

      void setResizeStyle(unsigned long style)  { resize_style=style; }
      unsigned long getResizeStyle() const            { return resize_style; }

      void setTitlebarStyle(unsigned long style)      { titlebar_style=style; }
      unsigned long getTitlebarStyle() const          { return titlebar_style; }

      void setButtonStyle(unsigned long style)  { button_style=style; }
      unsigned long getButtonStyle() const            { return button_style; }

      void setToolbarStyle(unsigned long style)       { toolbar_style=style; }
      unsigned long getToolbarStyle() const           { return toolbar_style; }

      void setToolbarExtraStyle(unsigned long style)  { toolbar_extra_style=style; }
      unsigned long getToolbarExtraStyle() const      { return toolbar_extra_style; }
      void setToolbarVisible()                  { toolbar_extra_style|=TOOLBAR_VISIBLE; }
      void setToolbarTop()                      { toolbar_extra_style|=TOOLBAR_TOP; }

      void setClockStyle(unsigned long style)   { clock_style=style; }
      unsigned long getClockStyle() const             { return clock_style; }

      void setMenuStyle(unsigned long style)          { menu_style=style; }
      unsigned long getMenuStyle() const        { return menu_style; }

      void setMenuTitleStyle(unsigned long style)     { menu_title_style=style; }
      unsigned long getMenuTitleStyle() const   { return menu_title_style; }

      void setMenuSelectStyle(unsigned long style)    { menu_select_style=style; }
      unsigned long getMenuSelectStyle() const  { return menu_select_style; }

      void setMenuFontColor(BColor c)           { menufont_color[0]=c;        }
      void setMenuFontColorFrom(BColor c)             { menufont_color[0]=c;        }
      void setMenuFontColorTo(BColor c)         { menufont_color[1]=c;        }
      void setFontColor(BColor c)               { font_color[0]=c;            }
      void setFontColorFrom(BColor c)           { font_color[0]=c;            }
      void setFontColorTo(BColor c)             { font_color[1]=c;            }
      void setClockColor(BColor c)              { clock[0]=c;           }
      void setClockColorFrom(BColor c)          { clock[0]=c;           }
      void setClockColorTo(BColor c)                  { clock[1]=c;           }
      void setRightSidebarColor(BColor c)             { right_sidebar[0]=c;   }
      void setRightSidebarColorFrom(BColor c)   { right_sidebar[0]=c;   }
      void setRightSidebarColorTo(BColor c)           { right_sidebar[1]=c;   }
      void setResizeColor(BColor c)                   { resize[0]=c;          }
      void setResizeColorFrom(BColor c)         { resize[0]=c;          }
      void setResizeColorTo(BColor c)                 { resize[1]=c;          }
      void setClientColor(BColor c)                   { client[0]=c;          }
      void setClientColorFrom(BColor c)         { client[0]=c;          }
      void setClientColorTo(BColor c)                 { client[1]=c;          }
      void setClientFocusColor(BColor c)        { client_focus[0]=c;    }
      void setClientFocusColorFrom(BColor c)          { client_focus[0]=c;    }
      void setClientFocusColorTo(BColor c)            { client_focus[1]=c;    }
      void setButtonColor(BColor c)                   { buttons[0] = c;       }
      void setButtonColorFrom(BColor c)         { buttons[0] = c;       }
      void setButtonColorTo(BColor c)           { buttons[1] = c;       }
      void setMenuTitleColor(BColor c)          { menu_title[0]=c;      }
      void setMenuTitleColorFrom(BColor c)            { menu_title[0]=c;      }
      void setMenuTitleColorTo(BColor c)        { menu_title[1]=c;      }
      void setMenuColor(BColor c)               { menu[0]=c;            }
      void setMenuColorFrom(BColor c)           { menu[0]=c;            }
      void setMenuColorTo(BColor c)                   { menu[1]=c;            }
      void setMenuSelectColor(BColor c)         { menu_select[0]=c;     }
      void setMenuSelectColorFrom(BColor c)           { menu_select[0]=c;     }
      void setMenuSelectColorTo(BColor c)             { menu_select[1]=c;     }
      void setToolbarColor(BColor c)                  { toolbar[0]=c;   }
      void setToolbarColorFrom(BColor c)        { toolbar[0]=c;   }
      void setToolbarColorTo(BColor c)          { toolbar[1]=c;   }
      void setRootColor(BColor c)               { root[0] = c;          }           
      void setRootColorFrom(BColor c)           { root[0] = c;          }     
      void setRootColorTo(BColor c)                   { root[1] = c;          }     

      BColor getMenuFontColor()           const { return menufont_color[0];}
      BColor getMenuFontColorFrom()             const { return menufont_color[0];}
      BColor getMenuFontColorTo()         const { return menufont_color[1];}
      BColor getFontColor()               const { return font_color[0];        }
      BColor getFontColorFrom()           const { return font_color[0];        }
      BColor getFontColorTo()             const { return font_color[1];        }
      BColor getClockColor()              const { return clock[0];       }
      BColor getClockColorFrom()          const { return clock[0];       }
      BColor getClockColorTo()            const { return clock[1];       }
      BColor getRightSidebarColor()             const { return right_sidebar[0]; }
      BColor getRightSidebarColorFrom()   const { return right_sidebar[0]; }
      BColor getRightSidebarColorTo()     const { return right_sidebar[1]; }
      BColor getResizeColor()             const { return resize[0];      }
      BColor getResizeColorFrom()         const { return resize[0];      }
      BColor getResizeColorTo()           const { return resize[1];      }
      BColor getClientColorFrom()         const { return client[0];      }
      BColor getClientColorTo()           const { return client[1];      }
      BColor getClientColor()             const { return client[0];      }
      BColor getClientFocusColorFrom()    const { return client_focus[0];  }
      BColor getClientFocusColorTo()            const { return client_focus[1];  }  
      BColor getClientFocusColor()        const { return client_focus[0];  }
      BColor getButtonColorFrom()         const { return buttons[0];     }
      BColor getButtonColorTo()           const { return buttons[1];     }
      BColor getButtonColor()             const { return buttons[0];     }
      BColor getMenuColorFrom()           const { return menu[0];        } 
      BColor getMenuColorTo()             const { return menu[1];        }
      BColor getMenuColor()               const { return menu[0];        } 
      BColor getMenuTitleColorFrom()            const { return menu_title[0];        } 
      BColor getMenuTitleColorTo()        const { return menu_title[1];        }
      BColor getMenuTitleColor()          const { return menu_title[0];        } 
      BColor getMenuSelectColorFrom()     const { return menu_select[0];       }
      BColor getMenuSelectColorTo()             const { return menu_select[1];       }
      BColor getMenuSelectColor()         const { return menu_select[0];       }
      BColor getToolbarColorFrom()        const { return toolbar[0];     }
      BColor getToolbarColorTo()          const { return toolbar[1];     }
      BColor getToolbarColor()            const { return toolbar[0];     }
      BColor getRootColorFrom()           const { return root[0];        }
      BColor getRootColorTo()             const { return root[1];        }
      BColor getRootColor()               const { return root[0];        }
};

#endif

Generated by  Doxygen 1.6.0   Back to index