mirror of https://github.com/adamdruppe/arsd.git
docs
This commit is contained in:
parent
534f9d9c35
commit
f24955f273
3
cgi.d
3
cgi.d
|
@ -150,7 +150,7 @@ void main() {
|
||||||
|
|
||||||
For CGI, `dmd yourfile.d cgi.d` then put the executable in your cgi-bin directory.
|
For CGI, `dmd yourfile.d cgi.d` then put the executable in your cgi-bin directory.
|
||||||
|
|
||||||
For FastCGI: `dmd yourfile.d cgi.d -version=fastcgi` and run it. spawn-fcgi helps on nginx. You can put the file in the directory for Apache. On IIS, run it with a port on the command line.
|
For FastCGI: `dmd yourfile.d cgi.d -version=fastcgi` and run it. spawn-fcgi helps on nginx. You can put the file in the directory for Apache. On IIS, run it with a port on the command line (this causes it to call FCGX_OpenSocket, which can work on nginx too).
|
||||||
|
|
||||||
For SCGI: `dmd yourfile.d cgi.d -version=scgi` and run the executable, providing a port number on the command line.
|
For SCGI: `dmd yourfile.d cgi.d -version=scgi` and run the executable, providing a port number on the command line.
|
||||||
|
|
||||||
|
@ -1751,6 +1751,7 @@ class Cgi {
|
||||||
parts.popFront();
|
parts.popFront();
|
||||||
requestUri = parts.front;
|
requestUri = parts.front;
|
||||||
|
|
||||||
|
// FIXME: the requestUri could be an absolute path!!! should I rename it or something?
|
||||||
scriptName = requestUri[0 .. pathInfoStarts];
|
scriptName = requestUri[0 .. pathInfoStarts];
|
||||||
|
|
||||||
auto question = requestUri.indexOf("?");
|
auto question = requestUri.indexOf("?");
|
||||||
|
|
|
@ -106,7 +106,7 @@ interface->SetProgressValue(hwnd, 40, 100);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/++
|
/++
|
||||||
simpledisplay.d provides basic cross-platform GUI-related functionality,
|
simpledisplay.d (often abbreviated to "sdpy") provides basic cross-platform GUI-related functionality,
|
||||||
including creating windows, drawing on them, working with the clipboard,
|
including creating windows, drawing on them, working with the clipboard,
|
||||||
timers, OpenGL, and more. However, it does NOT provide high level GUI
|
timers, OpenGL, and more. However, it does NOT provide high level GUI
|
||||||
widgets. See my minigui.d, an extension to this module, for that
|
widgets. See my minigui.d, an extension to this module, for that
|
||||||
|
@ -5799,7 +5799,7 @@ version(X11) {
|
||||||
import core.stdc.stdio;
|
import core.stdc.stdio;
|
||||||
char[265] buffer;
|
char[265] buffer;
|
||||||
XGetErrorText(dpy, evt.error_code, buffer.ptr, cast(int) buffer.length);
|
XGetErrorText(dpy, evt.error_code, buffer.ptr, cast(int) buffer.length);
|
||||||
printf("ERROR: %s\n", buffer.ptr);
|
debug printf("X Error %d: %s / Serial: %lld, Opcode: %d.%d, XID: 0x%llx\n", evt.error_code, buffer.ptr, evt.serial, evt.request_code, evt.minor_code, evt.resourceid);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6348,7 +6348,7 @@ struct KeyEvent {
|
||||||
ubyte hardwareCode; /// A platform and hardware specific code for the key
|
ubyte hardwareCode; /// A platform and hardware specific code for the key
|
||||||
bool pressed; /// true if the key was just pressed, false if it was just released. note: released events aren't always sent...
|
bool pressed; /// true if the key was just pressed, false if it was just released. note: released events aren't always sent...
|
||||||
|
|
||||||
dchar character; ///
|
deprecated("This never actually worked anyway, you should do a character event handler instead.") dchar character;
|
||||||
|
|
||||||
uint modifierState; /// see enum [ModifierState]. They are bitwise combined together.
|
uint modifierState; /// see enum [ModifierState]. They are bitwise combined together.
|
||||||
|
|
||||||
|
@ -12368,6 +12368,8 @@ mixin DynamicLoad!(XRender, "Xrender", 1, false, true) XRenderLibrary;
|
||||||
if(!librariesSuccessfullyLoaded)
|
if(!librariesSuccessfullyLoaded)
|
||||||
throw new Exception("Unable to load X11 client libraries");
|
throw new Exception("Unable to load X11 client libraries");
|
||||||
display = XOpenDisplay(displayName);
|
display = XOpenDisplay(displayName);
|
||||||
|
//XSetErrorHandler(&adrlogger);
|
||||||
|
//XSynchronize(display, true);
|
||||||
connectionSequence_++;
|
connectionSequence_++;
|
||||||
if(display is null)
|
if(display is null)
|
||||||
throw new Exception("Unable to open X display");
|
throw new Exception("Unable to open X display");
|
||||||
|
@ -13957,6 +13959,8 @@ extern(C) nothrow @nogc {
|
||||||
Display* XOpenDisplay(const char*);
|
Display* XOpenDisplay(const char*);
|
||||||
int XCloseDisplay(Display*);
|
int XCloseDisplay(Display*);
|
||||||
|
|
||||||
|
int XSynchronize(Display*, bool);
|
||||||
|
|
||||||
Bool XQueryExtension(Display*, const char*, int*, int*, int*);
|
Bool XQueryExtension(Display*, const char*, int*, int*, int*);
|
||||||
|
|
||||||
Bool XSupportsLocale();
|
Bool XSupportsLocale();
|
||||||
|
@ -17049,6 +17053,13 @@ class ExperimentalTextComponent2 {
|
||||||
Stage 7: word wrap
|
Stage 7: word wrap
|
||||||
Stage 8: justification
|
Stage 8: justification
|
||||||
Stage 9: editing, selection, etc.
|
Stage 9: editing, selection, etc.
|
||||||
|
|
||||||
|
Operations:
|
||||||
|
insert text
|
||||||
|
overstrike text
|
||||||
|
select
|
||||||
|
cut
|
||||||
|
modify
|
||||||
+/
|
+/
|
||||||
|
|
||||||
/++
|
/++
|
||||||
|
@ -17068,6 +17079,17 @@ class ExperimentalTextComponent2 {
|
||||||
adjustDownForAscent to change the y params.
|
adjustDownForAscent to change the y params.
|
||||||
+/
|
+/
|
||||||
static interface ComponentRenderHelper {
|
static interface ComponentRenderHelper {
|
||||||
|
|
||||||
|
/+
|
||||||
|
When you do an edit, possibly stuff on the same line previously need to move (to adjust
|
||||||
|
the baseline), stuff subsequent needs to move (adjust x) and possibly stuff below needs
|
||||||
|
to move (adjust y to make room for new line) until you get back to the same position,
|
||||||
|
then you can stop - if one thing is unchanged, nothing after it is changed too.
|
||||||
|
|
||||||
|
Word wrap might change this as if can rewrap tons of stuff, but the same idea applies,
|
||||||
|
once you reach something that is unchanged, you can stop.
|
||||||
|
+/
|
||||||
|
|
||||||
void adjustDownForAscent(int amount); // at the end of the line it needs to do these
|
void adjustDownForAscent(int amount); // at the end of the line it needs to do these
|
||||||
|
|
||||||
int ascent() const;
|
int ascent() const;
|
||||||
|
@ -17372,6 +17394,8 @@ class ExperimentalTextComponent2 {
|
||||||
// regular module namespace.
|
// regular module namespace.
|
||||||
mixin template ExperimentalTextComponent() {
|
mixin template ExperimentalTextComponent() {
|
||||||
|
|
||||||
|
static:
|
||||||
|
|
||||||
alias Rectangle = arsd.color.Rectangle;
|
alias Rectangle = arsd.color.Rectangle;
|
||||||
|
|
||||||
struct ForegroundColor {
|
struct ForegroundColor {
|
||||||
|
|
Loading…
Reference in New Issue