Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > a7afb4214ad7d07e20107aba563ffff2 > files > 2

gtklp-1.2.7-1mdv2010.1.src.rpm

--- gtklp-1.2.7/ChangeLog.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/ChangeLog	2009-12-11 16:23:54.000000000 +0100
@@ -74,6 +74,14 @@
 * Thu May 05 2005 Tobias Mueller <sirtobi@stud.uni-hannover.de>
 - new chinese translations
 
+* Wed May 18 2005 Jean-Michel Dault <jmdault@revolutionlinux.com>
+- Improvements for X Terminals and schools
+- put PaperSelect and Duplex side-by side in the general panel, and
+  add scrollbars in the other panels so that gtklp is workable in
+  low resolutions
+- add GTKLP_SIMPLE so we can force X and restrict users to the more common
+  options.
+
 * Thu Mar 03 2005 Tobias Mueller <sirtobi@stud.uni-hannover.de>
 - new polish translations
 - "double free()" bug fixed
--- gtklp-1.2.7/README.XTERM.simple	2009-12-11 16:23:54.000000000 +0100
+++ gtklp-1.2.7/README.XTERM	2009-12-11 16:23:54.000000000 +0100
@@ -0,0 +1,17 @@
+From Jean-Michel Dault <jmdault@revolutionlinux.com>
+
+Here are some improvements I wrote for Commission Scolaire des Affluents, a
+school district in Quebec, Canada with 72 schools.
+
+- put PaperSelect and Duplex side-by side in the general panel, and
+  add scrollbars in the other panels so that gtklp is workable in
+  low resolutions (800x600 and 640x480)
+- add GTKLP_SIMPLE so we can force X and restrict users to the more common
+  options
+
+To enable these settings, put "export GTKLP_SIMPLE=1" in your Xsession
+script. 
+
+Then: 
+- remove lpr and kprinter, and make them symlinks to gtklp
+- remove lpq and lprm and make them symlinks to gtklpq
--- gtklp-1.2.7/gtklp/general.c.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/gtklp/general.c	2009-12-11 16:23:54.000000000 +0100
@@ -555,7 +555,11 @@
 }
 
 void callGtkLPQFunc(GtkButton *button, gpointer data) {
-	system(GTKLPQCOM);
+	/* JMD: start in background */
+	unsigned char CMD[MAXPATH+1];
+	strncpy(CMD,GTKLPQCOM,(size_t)MAXPATH);
+	strcat(CMD,"&");
+	system(CMD);
 }
 
 void PrinterCallGtklpq(GtkWidget *container)
@@ -640,6 +644,8 @@
 
 void GeneralTab(void)
 {
+	GtkWidget *vbox1, *vbox2, *hbox;
+
         generalTab=gtk_vbox_new(FALSE,0);
 	gtk_container_set_border_width(GTK_CONTAINER(generalTab), FRAME_BORDER);
 
@@ -647,7 +653,21 @@
 
 	PrinterFrame(generalTab);
 	PrinterNumCopies(generalTab);
-	PrinterMedia(generalTab);
-	PrinterDuplex(generalTab);
+
+	/* JMD: put Media and Duplex side by side so it fits better in 800x600 */
+	hbox=gtk_hbox_new(FALSE,0);
+	gtk_box_pack_start(GTK_BOX(generalTab), hbox, TRUE,TRUE,0);
+	gtk_widget_show(hbox);
+
+	vbox1=gtk_vbox_new(FALSE,0);
+	gtk_box_pack_start(GTK_BOX(hbox), vbox1, TRUE,TRUE,0);
+	gtk_widget_show(vbox1);
+
+	vbox2=gtk_vbox_new(FALSE,0);
+	gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE,TRUE,0);
+	gtk_widget_show(vbox2);
+
+	PrinterMedia(vbox1);
+	PrinterDuplex(vbox2);
 }
 
--- gtklp-1.2.7/gtklp/gtklp.c.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/gtklp/gtklp.c	2009-12-11 16:27:17.000000000 +0100
@@ -136,6 +136,7 @@
 	int calledLpr;
 	int calledLp;
 	int forceX;
+	extern int isSimple;
 	char Path[MAXPATH+1];
 	char *z1;
 	char tmpenv[MAX_SERVER_NAME+13];
@@ -185,6 +186,15 @@
 		}
 	}	
 
+	/* JMD: make it kid-proof */
+	isSimple=0;
+	if(getenv("GTKLP_SIMPLE") != (char *)NULL) {
+		if(strcmp(getenv("GTKLP_SIMPLE"),"1") == 0) {
+			isSimple=1;
+			forceX=1;
+		}
+	}	
+
 	/*-- Use X ? --*/
   nox=noX();
 
@@ -689,7 +699,8 @@
 		button_pad(buttonReset);
 		gtk_signal_connect (GTK_OBJECT (buttonReset), "clicked",GTK_SIGNAL_FUNC (ResetFunc), NULL);
 		gtk_box_pack_start(GTK_BOX(buttonBox), buttonReset, FALSE, TRUE, 0);
-		gtk_widget_show (buttonReset);
+		/* JMD */
+		if(isSimple!=1) { gtk_widget_show (buttonReset); }
 
 #if GTK_MAJOR_VERSION != 1
 		buttonSave = gtk_button_new_from_stock(GTK_STOCK_SAVE_AS);
@@ -699,13 +710,15 @@
 		button_pad(buttonSave);
 		gtk_signal_connect (GTK_OBJECT (buttonSave), "clicked",GTK_SIGNAL_FUNC (instWin), NULL);
 		gtk_box_pack_start(GTK_BOX(buttonBox), buttonSave, FALSE, TRUE, 0);
-		gtk_widget_show (buttonSave);
-
+		/* JMD */
+		if(isSimple!=1) { gtk_widget_show (buttonSave); }
+ 
 #if GTK_MAJOR_VERSION != 1
     buttonAbbruch = gtk_button_new_from_stock(GTK_STOCK_QUIT);
 #else
     buttonAbbruch = gtk_button_new_with_label (str2str(_("Close")));
 #endif
+    if(isSimple==1) { gtk_widget_set_size_request(buttonAbbruch,0,0); }
     button_pad(buttonAbbruch);
     gtk_signal_connect (GTK_OBJECT (buttonAbbruch), "clicked",GTK_SIGNAL_FUNC (AbbruchFunc), NULL);
     gtk_box_pack_start(GTK_BOX(buttonBox), buttonAbbruch, FALSE, TRUE, 0);
@@ -737,7 +750,13 @@
 		gtk_widget_hide(progressBar);
 #endif 
 		ShowWidgets();
-		if(DEBUG)
+
+		/* JMD: if a file specified on the command line, show the General tab instead 
+		of the File tab, since 99.9% of the time you don't want to add another file, 
+		you just want to select your printer! */
+		if(filesToPrintAnz >0) tabtoopen=1;
+
+		if(DEBUG) 
 			printf("Switching to Tab %i\n",tabtoopen);
 
 #if GTK_MAJOR_VERSION == 1
--- gtklp-1.2.7/gtklp/gtklp_functions.c.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/gtklp/gtklp_functions.c	2009-12-11 16:31:15.000000000 +0100
@@ -77,6 +77,9 @@
 GtkWidget *button_inst_remove;
 GtkWidget *instwin;
 
+/* JMD: make it kid proof */
+int isSimple;
+
 int teststdin()
 {
 	fd_set rfds;
@@ -344,12 +347,22 @@
                 hpgl2pen=1000;
                 wantraw=0;
                 ExtraOpt[0]=(uintptr_t)NULL;
+		/* JMD: make it kid proof */
+		if(isSimple!=1) {
                 viewable[0]=1;
                 viewable[1]=1;
                 viewable[2]=1;
                 viewable[3]=1;
                 viewable[4]=1;
 		viewable[5]=1;
+		} else {
+		viewable[0]=0;
+		viewable[1]=0;
+		viewable[2]=0;
+		viewable[3]=0;
+		viewable[4]=0;
+		viewable[5]=0;
+		}
 		if(UserName[0] == (uintptr_t)NULL)
 		{
 			if((strlen((char *)cupsUser()) < MAX_USERNAME))
@@ -712,8 +725,14 @@
 	if(which >= 1)
 	{
 	        saveonexit=1;
-					saveanz=1;
-        	rememberprinter=0;
+		/* JMD: do not save the number of pages on exit by default,
+		   people forget to reset it to 1, and this results in
+		   wasted paper */
+		saveanz=0;
+		/* JMD: remember printer by default: it's very annoying to 
+		   always have to choose the right printer in a big office
+		   with many printers with similar names */
+        	rememberprinter=1;
 					remembertab=0;
 	        clearfilelist=1;
         	exitonprint=1;
@@ -721,7 +740,7 @@
 		jobidonexit=0;
 		strncpy(BROWSER,DEF_BROWSER_CMD,(size_t)MAXPATH);
 		strncpy(HELPURL,DEF_HELP_HOME,(size_t)MAXPATH);
-		GTKLPQCOM[0]=(uintptr_t)NULL;
+		strncpy(GTKLPQCOM,DEF_GTKLPQCOM,(size_t)MAXPATH);
 		wantconst=0;
 #if GTK_MAJOR_VERSION != 1
 		mainWindowHeight=0; 
@@ -1638,7 +1657,9 @@
 	PPDTab();
 	gtk_widget_show(ppdTab);
 	GtklpTab();
-	gtk_widget_show(gtklpTab);
+	if(isSimple!=1) {
+	  gtk_widget_show(gtklpTab); 
+	}
 }
 
 void ShowWidgets(void)
--- gtklp-1.2.7/gtklp/image.c.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/gtklp/image.c	2009-12-11 16:23:54.000000000 +0100
@@ -406,23 +406,45 @@
 				}
 }
 
+GtkWidget *ImageFrame(GtkWidget *container)
+{
+	GtkWidget *frameScrolled;
+	GtkWidget *hbox,*vbox;
+
+	frameScrolled=gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(frameScrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
+	gtk_box_pack_start(GTK_BOX(container), frameScrolled, TRUE, TRUE, 0);
+	gtk_widget_show(frameScrolled);
+
+	hbox=gtk_hbox_new(FALSE,0);
+	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(frameScrolled), hbox);
+	gtk_widget_show(hbox);
+
+	vbox=gtk_vbox_new(FALSE,0);
+	gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE,TRUE,FRAME_SPACING_V);
+	gtk_widget_show(vbox);
+
+	return(vbox);
+}
 
 
 void ImageTab(void)
 {
-    GtkWidget  *hbox;
+	GtkWidget *hbox, *frame;
 
 	imageTab=gtk_vbox_new(FALSE,0);
 	gtk_container_set_border_width(GTK_CONTAINER(imageTab), FRAME_BORDER);
 	gtk_notebook_append_page(GTK_NOTEBOOK(tabs), imageTab, gtk_label_new(str2str(_("Image"))));
 
+	frame=ImageFrame(imageTab);
+
 	hbox = gtk_hbox_new(FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(imageTab), hbox, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
 	gtk_widget_show(hbox);
 
 	ImagePosFrame(hbox);
 	ImageScalingAllFrame(hbox);
 
-	ImageHUEFrame(imageTab);
-	ImageSatFrame(imageTab);
+	ImageHUEFrame(frame);
+	ImageSatFrame(frame);
 }
--- gtklp-1.2.7/gtklp/output.c.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/gtklp/output.c	2009-12-11 16:23:54.000000000 +0100
@@ -65,6 +65,8 @@
 GtkWidget *nupPixMapWid=NULL;
 GtkWidget *mirrorCheck;
 
+extern int isSimple;
+
 void outputTabSetDefaults(void)
 {
 	if(DEBUG)
@@ -632,7 +634,9 @@
 
         mainHBox=gtk_hbox_new(FALSE,INFRAME_SPACING_H);
         gtk_box_pack_start(GTK_BOX(container),mainHBox,FALSE, FALSE,FRAME_SPACING_V);
-        gtk_widget_show(mainHBox);
+	if(isSimple!=1) {
+          gtk_widget_show(mainHBox);
+	}
         brightFrame=gtk_frame_new(str2str(_("Brightness")));
         gtk_box_pack_start(GTK_BOX(mainHBox), brightFrame, TRUE, TRUE,FRAME_SPACING_V);
 
@@ -695,7 +699,9 @@
 
         mainHBox=gtk_hbox_new(FALSE,INFRAME_SPACING_H);
         gtk_box_pack_start(GTK_BOX(container),mainHBox,FALSE, FALSE,FRAME_SPACING_V);
-        gtk_widget_show(mainHBox);
+	if(isSimple!=1) {
+          gtk_widget_show(mainHBox);
+        }
         gammaFrame=gtk_frame_new(str2str(_("Gamma correction")));
         gtk_box_pack_start(GTK_BOX(mainHBox), gammaFrame, TRUE, TRUE,FRAME_SPACING_V);
 
@@ -748,15 +754,40 @@
 
 }
 
+GtkWidget *OutputFrame(GtkWidget *container)
+{
+	GtkWidget *frameScrolled;
+	GtkWidget *hbox,*vbox;
+
+	frameScrolled=gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(frameScrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
+	gtk_box_pack_start(GTK_BOX(container), frameScrolled, TRUE, TRUE, 0);
+	gtk_widget_show(frameScrolled);
+
+	hbox=gtk_hbox_new(FALSE,0);
+	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(frameScrolled), hbox);
+	gtk_widget_show(hbox);
+
+	vbox=gtk_vbox_new(FALSE,0);
+	gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE,TRUE,FRAME_SPACING_V);
+	gtk_widget_show(vbox);
+
+	return(vbox);
+}
 
 
 void OutputTab(void)
 {
+
+	GtkWidget *frame;
+
         outputTab=gtk_vbox_new(FALSE,0);
         gtk_notebook_append_page(GTK_NOTEBOOK(tabs), outputTab, gtk_label_new(str2str(_("Output"))));
 
-	RangesFrame(outputTab);
-	sheetUsageFrame(outputTab);
-	BrightFrame(outputTab);
-	GammaFrame(outputTab);
+	frame=OutputFrame(outputTab);
+
+	RangesFrame(frame);
+	sheetUsageFrame(frame);
+	BrightFrame(frame);
+	GammaFrame(frame);
 }
--- gtklp-1.2.7/gtklp/special.c.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/gtklp/special.c	2009-12-11 16:23:54.000000000 +0100
@@ -357,17 +357,40 @@
         gtk_signal_connect(GTK_OBJECT(GTK_ENTRY(extraOptField)),"changed",GTK_SIGNAL_FUNC(extraOptChanged),NULL);
 }
 
+GtkWidget *SpecialFrame(GtkWidget *container)
+{
+	GtkWidget *frameScrolled;
+	GtkWidget *hbox,*vbox;
+
+	frameScrolled=gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(frameScrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
+	gtk_box_pack_start(GTK_BOX(container), frameScrolled, TRUE, TRUE, 0);
+	gtk_widget_show(frameScrolled);
+
+	hbox=gtk_hbox_new(FALSE,0);
+	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(frameScrolled), hbox);
+	gtk_widget_show(hbox);
+
+	vbox=gtk_vbox_new(FALSE,0);
+	gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE,TRUE,FRAME_SPACING_V);
+	gtk_widget_show(vbox);
+
+	return(vbox);
+}
 
 
 void SpecialTab(void)
 {
+	GtkWidget *frame;
+	
 	specialTab=gtk_vbox_new(FALSE,0);
 	gtk_container_set_border_width(GTK_CONTAINER(specialTab), FRAME_BORDER);
 	gtk_notebook_append_page(GTK_NOTEBOOK(tabs), specialTab, gtk_label_new(str2str(_("Special"))));
 
-	BannerFrame(specialTab);
-	JobNameFrame(specialTab);
-	SpecialOptFrame(specialTab);
-	PassFrame(specialTab);
-	ExtraOptFrame(specialTab);
+	frame=SpecialFrame(specialTab);
+	BannerFrame(frame);
+	JobNameFrame(frame);
+	SpecialOptFrame(frame);
+	PassFrame(frame);
+	ExtraOptFrame(frame);
 }
--- gtklp-1.2.7/gtklp/text.c.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/gtklp/text.c	2009-12-11 16:23:54.000000000 +0100
@@ -698,15 +698,39 @@
 
 }
 
+GtkWidget *TextFrame(GtkWidget *container)
+{
+	GtkWidget *frameScrolled;
+	GtkWidget *hbox,*vbox;
+
+	frameScrolled=gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(frameScrolled),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
+	gtk_box_pack_start(GTK_BOX(container), frameScrolled, TRUE, TRUE, 0);
+	gtk_widget_show(frameScrolled);
+
+	hbox=gtk_hbox_new(FALSE,0);
+	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(frameScrolled), hbox);
+	gtk_widget_show(hbox);
+
+	vbox=gtk_vbox_new(FALSE,0);
+	gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE,TRUE,FRAME_SPACING_V);
+	gtk_widget_show(vbox);
+
+	return(vbox);
+}
+
 
 void TextTab(void)
 {
+	GtkWidget *frame;
+
         textTab=gtk_vbox_new(FALSE,0);
 	gtk_container_set_border_width(GTK_CONTAINER(textTab), FRAME_BORDER);
         gtk_notebook_append_page(GTK_NOTEBOOK(tabs), textTab, gtk_label_new(str2str(_("Text"))));
 
-	textSizes(textTab);
-	marginSizes(textTab);
-	textForm(textTab);
+	frame=TextFrame(textTab);
+	textSizes(frame);
+	marginSizes(frame);
+	textForm(frame);
 
 }
--- gtklp-1.2.7/include/defaults.h.simple	2009-06-21 14:25:37.000000000 +0200
+++ gtklp-1.2.7/include/defaults.h	2009-12-11 16:23:54.000000000 +0100
@@ -63,7 +63,8 @@
 /* PATHS */
 #define DEF_GTKLPRC "/etc/gtklp"
 #define DEF_HELP_HOME "http://localhost:631/sum.html#STANDARD_OPTIONS"
-#define DEF_BROWSER_CMD "netscape $0 2>/dev/null&"
+#define DEF_BROWSER_CMD "mozffremote $0 2>/dev/null&"
+#define DEF_GTKLPQCOM "gtklpq"
 
 #define GTKLPRC_USER ".gtklp"
 #define GTKLPRC_GLOBAL "gtklprc"