00001 /* drawer -- class that draws rectangles representing files 00002 Copyright (C) 2002 Aaron Bentley 00003 00004 This program is free software; you can redistribute it and/or modify 00005 it under the terms of the GNU General Public License as published by 00006 the Free Software Foundation; either version 2, or (at your option) 00007 any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program; if not, write to the Free Software Foundation, 00016 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 00017 00018 00019 class Drawer 00020 { 00021 protected: 00022 Gdk_GC context; 00023 Gdk_Color curcolor; 00024 Gdk_Colormap colormap; 00025 Gdk_Window window; 00026 00027 public: 00028 Drawer(Gdk_Window const awindow); 00029 virtual ~Drawer() 00030 {} 00031 00032 virtual void operator()(EntryRect const &cur, Gdk_Color rcolor); 00033 }; 00034 00035 class PrettyDrawer: public Drawer 00036 { 00037 public: 00038 PrettyDrawer(Gdk_Window const awindow); 00039 void operator()(EntryRect const &cur, Gdk_Color rcolor); 00040 void brightness(Gdk_Color &curcolor, float amount) const; 00041 void fg_brightness(Gdk_Color curcolor, float amount); 00042 }; 00043 class DarkFirst: public PrettyDrawer 00044 { 00045 public: 00046 DarkFirst(Gdk_Window const awindow); 00047 void operator()(EntryRect const &cur, Gdk_Color rcolor); 00048 }; 00049 00050