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 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.
|
||||
|
||||
|
@ -1751,6 +1751,7 @@ class Cgi {
|
|||
parts.popFront();
|
||||
requestUri = parts.front;
|
||||
|
||||
// FIXME: the requestUri could be an absolute path!!! should I rename it or something?
|
||||
scriptName = requestUri[0 .. pathInfoStarts];
|
||||
|
||||
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,
|
||||
timers, OpenGL, and more. However, it does NOT provide high level GUI
|
||||
widgets. See my minigui.d, an extension to this module, for that
|
||||
|
@ -5799,7 +5799,7 @@ version(X11) {
|
|||
import core.stdc.stdio;
|
||||
char[265] buffer;
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -6348,7 +6348,7 @@ struct KeyEvent {
|
|||
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...
|
||||
|
||||
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.
|
||||
|
||||
|
@ -12368,6 +12368,8 @@ mixin DynamicLoad!(XRender, "Xrender", 1, false, true) XRenderLibrary;
|
|||
if(!librariesSuccessfullyLoaded)
|
||||
throw new Exception("Unable to load X11 client libraries");
|
||||
display = XOpenDisplay(displayName);
|
||||
//XSetErrorHandler(&adrlogger);
|
||||
//XSynchronize(display, true);
|
||||
connectionSequence_++;
|
||||
if(display is null)
|
||||
throw new Exception("Unable to open X display");
|
||||
|
@ -13957,6 +13959,8 @@ extern(C) nothrow @nogc {
|
|||
Display* XOpenDisplay(const char*);
|
||||
int XCloseDisplay(Display*);
|
||||
|
||||
int XSynchronize(Display*, bool);
|
||||
|
||||
Bool XQueryExtension(Display*, const char*, int*, int*, int*);
|
||||
|
||||
Bool XSupportsLocale();
|
||||
|
@ -17049,6 +17053,13 @@ class ExperimentalTextComponent2 {
|
|||
Stage 7: word wrap
|
||||
Stage 8: justification
|
||||
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.
|
||||
+/
|
||||
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
|
||||
|
||||
int ascent() const;
|
||||
|
@ -17372,6 +17394,8 @@ class ExperimentalTextComponent2 {
|
|||
// regular module namespace.
|
||||
mixin template ExperimentalTextComponent() {
|
||||
|
||||
static:
|
||||
|
||||
alias Rectangle = arsd.color.Rectangle;
|
||||
|
||||
struct ForegroundColor {
|
||||
|
|
Loading…
Reference in New Issue