[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/