[Pkg-wmaker-commits] [wmforecast] 09/10: wmforecast.c: Add command line options to set colors.

Doug Torrance dtorrance-guest at moszumanska.debian.org
Mon Aug 17 11:20:41 UTC 2015


This is an automated email from the git hooks/post-receive script.

dtorrance-guest pushed a commit to branch upstream
in repository wmforecast.

commit b31d81eb17ee402443ef967d69bc5c04c6254da6
Author: Doug Torrance <dtorrance at monmouthcollege.edu>
Date:   Thu Oct 30 13:31:50 2014 -0500

    wmforecast.c: Add command line options to set colors.
    
    In particular, -b or --background can be used to set the background color
    and -t or --text can be used to set the text color.  These can also be set
    in ~/.config/wmforecast/wmforecastrc by setting "background" and "text",
    respectively.
---
 wmforecast.c | 67 +++++++++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 50 insertions(+), 17 deletions(-)

diff --git a/wmforecast.c b/wmforecast.c
index cfaa55e..2b03463 100755
--- a/wmforecast.c
+++ b/wmforecast.c
@@ -29,8 +29,6 @@
 #include <sys/stat.h>
 #include <WINGs/WINGs.h>
 
-#define color(c) WMCreateNamedColor(screen,c,True)
-
 #define DEFAULT_TEXT_COLOR "light sea green"
 #define DEFAULT_BG_COLOR "black"
 
@@ -40,6 +38,8 @@ typedef struct {
 	char *zip;
 	char *woeid_or_zip;
 	long int interval;
+	char *background;
+	char *text;
 } Preferences;
 
 typedef struct {
@@ -249,6 +249,8 @@ WMWindow *WMCreateDockapp(WMScreen *screen, const char *name, int argc, char **a
 Dockapp *newDockapp(WMScreen *screen, Preferences *prefs, int argc, char **argv)
 {
 	Dockapp *dockapp = wmalloc(sizeof(Dockapp));
+	WMColor *background;
+	WMColor *text;
 	WMFrame *frame;
 	WMWindow *window;
 
@@ -259,23 +261,34 @@ Dockapp *newDockapp(WMScreen *screen, Preferences *prefs, int argc, char **argv)
 
 	window = WMCreateDockapp(screen, "", argc, argv);
 
+	background = WMCreateNamedColor(screen, prefs->background, True);
+	if (!background) {
+		background = WMCreateNamedColor(screen, DEFAULT_BG_COLOR, True);
+		prefs->background = DEFAULT_BG_COLOR;
+	}
+	text = WMCreateNamedColor(screen, prefs->text, True);
+	if (!text) {
+		text = WMCreateNamedColor(screen, DEFAULT_TEXT_COLOR, True);
+		prefs->text = DEFAULT_TEXT_COLOR;
+	}
+
 	frame = WMCreateFrame(window);
 	WMSetFrameRelief(frame,WRSunken);
 	WMResizeWidget(frame,56,56);
-	WMSetWidgetBackgroundColor(frame,color(DEFAULT_BG_COLOR));
+	WMSetWidgetBackgroundColor(frame, background);
 	WMRealizeWidget(frame);
 
 	dockapp->text = WMCreateLabel(frame);
-	WMSetWidgetBackgroundColor(dockapp->text, color(DEFAULT_BG_COLOR));
+	WMSetWidgetBackgroundColor(dockapp->text, background);
 	WMSetLabelFont(dockapp->text, WMCreateFont(screen, "-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1"));
-	WMSetLabelTextColor(dockapp->text, color(DEFAULT_TEXT_COLOR));
+	WMSetLabelTextColor(dockapp->text, text);
 	WMSetLabelTextAlignment (dockapp->text, WACenter);
 	WMResizeWidget(dockapp->text,52,14);
 	WMMoveWidget(dockapp->text,2,40);
 	WMRealizeWidget(dockapp->text);
 
 	dockapp->icon = WMCreateLabel(frame);
-	WMSetWidgetBackgroundColor(dockapp->icon,color(DEFAULT_BG_COLOR));
+	WMSetWidgetBackgroundColor(dockapp->icon, background);
 	WMRealizeWidget(dockapp->icon);
 	WMSetLabelImagePosition(dockapp->icon,WIPImageOnly);
 	WMResizeWidget(dockapp->icon,32,32);
@@ -557,6 +570,12 @@ void readPreferences(Preferences *prefs)
 		value = WMGetPLStringForKey(propList, "interval");
 		if (value)
 			prefs->interval = strtol(value, NULL, 10);
+		value = WMGetPLStringForKey(propList, "background");
+		if (value)
+			prefs->background = value;
+		value = WMGetPLStringForKey(propList, "text");
+		if (value)
+			prefs->text = value;
 	}
 
 
@@ -573,6 +592,8 @@ Preferences *setPreferences(int argc, char **argv)
 	prefs->zip = NULL;
 	prefs->woeid_or_zip = NULL;
 	prefs->interval = 60;
+	prefs->background = DEFAULT_BG_COLOR;
+	prefs->text = DEFAULT_TEXT_COLOR;
 
 	readPreferences(prefs);
 
@@ -587,11 +608,13 @@ Preferences *setPreferences(int argc, char **argv)
 				{"units", required_argument, 0, 'u'},
 				{"zip", required_argument, 0, 'z'},
 				{"interval", required_argument, 0, 'i'},
+				{"background", required_argument, 0, 'b'},
+				{"text", required_argument, 0, 't'},
 				{0, 0, 0, 0}
 			};
 		int option_index = 0;
 
-		c = getopt_long (argc, argv, "vhw:u:z:i:",
+		c = getopt_long (argc, argv, "vhw:u:z:i:b:t:",
 				 long_options, &option_index);
 
 		if (c == -1)
@@ -639,21 +662,31 @@ Preferences *setPreferences(int argc, char **argv)
 			prefs->interval = strtol(optarg,NULL,10);
 			break;
 
+		case 'b':
+			prefs->background = optarg;
+			break;
+
+		case 't':
+			prefs->text = optarg;
+			break;
+
 		case '?':
 		case 'h':
 			printf("A weather dockapp for Window Maker using the Yahoo Weather API\n"
 			       "Usage: wmforecast [OPTIONS]\n"
 			       "Options:\n"
-			       "    -v, --version        print the version number\n"
-			       "    -h, --help           print this help screen\n"
-			       "    -i, --interval <min> number of minutes between refreshes (default 60)\n"
-			       "    -u, --units <c|f>    whether to use Celsius or Fahrenheit (default f)\n"
-			       "    -w, --woeid <woeid>  Where on Earth ID (default is 2502265 for\n"
-			       "                         Sunnyvale, CA -- to find your WOEID, search\n"
-			       "                         for your city at http://weather.yahoo.com and\n"
-			       "                         look in the URL.)\n"
-			       "    -z, --zip <zip>      ZIP code or Location ID (Yahoo has deprecated this\n"
-			       "                         option and it is not guaranteed to work)\n"
+			       "    -v, --version            print the version number\n"
+			       "    -h, --help               print this help screen\n"
+			       "    -i, --interval <min>     number of minutes between refreshes (default 60)\n"
+			       "    -u, --units <c|f>        whether to use Celsius or Fahrenheit (default f)\n"
+			       "    -w, --woeid <woeid>      Where on Earth ID (default is 2502265 for\n"
+			       "                             Sunnyvale, CA -- to find your WOEID, search\n"
+			       "                             for your city at http://weather.yahoo.com and\n"
+			       "                             look in the URL.)\n"
+			       "    -z, --zip <zip>          ZIP code or Location ID (Yahoo has deprecated this\n"
+			       "                             option and it is not guaranteed to work)\n"
+			       "    -b, --background <color> set background color\n"
+			       "    -t, --text <color>       set text color\n"
 			       "Report bugs to: %s\n"
 			       "wmforecast home page: https://github.com/d-torrance/wmforecast\n",
 			       PACKAGE_BUGREPORT

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmforecast.git



More information about the Pkg-wmaker-commits mailing list