[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sc-dev] SF.net SVN: quarks:[1303] HelpDesk



Revision: 1303
          http://quarks.svn.sourceforge.net/quarks/?rev=1303&view=rev
Author:   jrhb
Date:     2009-12-27 11:05:20 +0000 (Sun, 27 Dec 2009)

Log Message:
-----------
improve help desk

Modified Paths:
--------------
    HelpDesk/HelpDoc.sc
    HelpDesk/HelpDoc.scd

Modified: HelpDesk/HelpDoc.sc
===================================================================
--- HelpDesk/HelpDoc.sc	2009-12-26 23:26:59 UTC (rev 1302)
+++ HelpDesk/HelpDoc.sc	2009-12-27 11:05:20 UTC (rev 1303)
@@ -13,15 +13,34 @@
 	
 	makeGUI {
 		// ...
-		var view = Window(name ? "Untitled 01");
-		// ...
-		segments.do { |seg| seg.addToGUI(view) };
+		var window = Window(name ? "Untitled 01", Rect(40, 40, 510, 400));
+		window.addFlowLayout;
+		Button(window, Rect(0, 0, 60, 30)).states_([["post doc"]]).action_({ this.makeDoc });
+		Button(window, Rect(0, 0, 60, 30)).states_([["post XML"]]).action_({ this.asXML });
+		window.view.decorator.nextLine;
+		segments.do { |seg| 
+			seg.addToGUI(window);
+			window.view.decorator.nextLine;
+		};
+		window.front;
 	}
 	
 	asDict {
 		^(category: \helpdoc, name: name, segments: segments.collect(_.asDict))
 	}
 	
+	asXML { |stream|
+		stream = stream ? HelpXMLStream; // use a different one later
+		stream << "<?xml version=\"1.0\" encoding='UTF-8'?>";
+		stream.nl;
+		stream.openTag("SCHelp");
+		stream.nl;
+		segments.do { |seg|
+			seg.asXML(stream);
+		};
+		stream.closeTag("SCHelp");
+	}
+	
 	// replace these with platform specific settings
 	
 	makeDoc {
@@ -48,7 +67,25 @@
 }
 
 
+HelpXMLStream : Post { // change later to CollStream
+	classvar <open;
+	
+	*openTag { |tag|
+		this << "<" << tag << ">";
+		open = open.add(tag);
+	}
+	
+	*closeTag { |tag|
+		var stackTag = open.pop;
+		tag !? { 
+			if(stackTag != tag) { Error("XML tags don't close properly.").throw }
+		};
+		this << "</" << stackTag << ">";
+	}
+}
 
+
+
 HelpDocNode {
 
 	// editing gui
@@ -60,9 +97,11 @@
 	addTextField { |parent, property, size = 10|
 		var oldVal = this.perform(property);
 		// determine optimal size (todo)
-		^TextView(parent).string_(oldVal ? "add % here".format(property)).action_({ |v|
-			this.perform(property.asSetter, v.string)
-		});
+		^TextView(parent, Rect(0, 0, 500, 30))
+			.string_(oldVal ? "add % here".format(property))
+			.keyDownAction_({ |v|
+				AppClock.sched(0.01, { this.perform(property.asSetter, v.string); nil })
+			});
 	}
 
 	// rendering
@@ -82,6 +121,23 @@
 		^res
 	}
 	
+	addPropertyToXML { |stream, property|
+		var value = this.perform(property).asCompileString;
+		stream.openTag(property);
+		stream.openTag("string");
+		stream << value;
+		stream.closeTag("string");
+		stream.closeTag(property);
+		
+	}
+	
+	asXML { |stream|
+		this.properties.do { |property| 
+			this.addPropertyToXML(stream, property);
+			stream.nl;
+		}
+	}
+	
 	addString { |doc, string, font|
 		font = font ? HelpDoc.normalFont;
 		// doc.setFont(font, doc.selectionStart); // still platform specific
@@ -109,6 +165,7 @@
 	addToGUI { |parent|
 		this.properties.do { |property|
 			this.addTextField(parent, property);
+			parent.view.decorator.nextLine;
 		};
 	}
 	
@@ -157,41 +214,5 @@
 }
 
 
-/*
-HelpXMLStream : Post { // change later
-	classvar <open;
-	
-	*openTag { |tag|
-		this << "<" << tag << ">";
-		open = open.add(tag);
-	}
-	
-	*closeTag { |tag|
-		var stackTag = open.pop;
-		tag !? { 
-			if(stackTag != tag) { Error("XML tags don't close properly.").throw }
-		};
-		this << "</" << stackTag << ">";
-	}
-}
-*/
 
 
-/*
-asXML { |stream|
-		stream = stream ? HelpXMLStream; // use a different one later
-		stream.openTag("XML");
-		segments.do { |seg|
-			seg.asXML(stream);
-		};
-		stream.closeTag("XML");
-	}
-asXML { |stream|
-		[\name, \headline, \description].do { |property|
-			stream.openTag(property);
-			stream << "\n" << this.perform(property).asCompileString << "\n";
-			stream.closeTag;
-		};
-	}
-	
-*/

Modified: HelpDesk/HelpDoc.scd
===================================================================
--- HelpDesk/HelpDoc.scd	2009-12-26 23:26:59 UTC (rev 1302)
+++ HelpDesk/HelpDoc.scd	2009-12-27 11:05:20 UTC (rev 1303)
@@ -10,13 +10,14 @@
 			)
 		]
 );
+)
 
 
 a.makeDoc;
 a.asDict;
-)
+a.asXML;"";
+a.makeGUI;
 
-
 // noop.
 // primitive not bound: prSaveAsPlist
 a.writeAsPlist("HelpDoc.plist");


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/