Previous
|
Up
|
Next
|
System Primitives |
Primitives and EEL Subroutines |
WinHelp Interface |
Epsilon User's Manual and Reference >
Primitives and EEL Subroutines >
Operating System Primitives >
Window System Primitives
windows_maximize()
windows_minimize()
windows_restore()
windows_foreground()
int windows_state()
int screen_to_window_id(int screen)
In Epsilon for Windows, and in Unix under X11, the
windows_maximize( ), windows_minimize( ), and
windows_restore( ) primitives perform the indicated action on
the main Epsilon screen. The windows_foreground( ) primitive
tries to make Epsilon the foreground window. (Under X11, some window
managers may not let Epsilon do this. Also see the
server-raises-window variable.)
The windows_state( ) primitive returns a code indicating the
state of Epsilon's main window. The value
WINSTATE_MINIMIZED indicates the window has been minimized
or iconified. The value WINSTATE_MAXIMIZED indicates the
window has been maximized. Zero indicates the window is in some other
state.
The screen_to_window_id( ) primitive returns the system's
window id (for X11) or window handle (for Windows) corresponding to a
particular screen number. For Windows, specify a screen number of
-1 to retrieve the window handle of the frame window that contains
Epsilon's menu bar, title bar and so forth. It returns 0 if there
is no screen with that number.
int drag_drop_result(char *file)
drag_drop_handler()
do_resume_client()
short reject_client_connections;
Epsilon uses the drag_drop_result( )
primitive to retrieve the names of files dropped on an Epsilon window
using drag and drop, after receiving the event key
WIN_DRAG_DROP. Pass the primitive a character array big enough
to hold a file name. The primitive will return a nonzero value and
fill the array with the first file name. Call the primitive again to
retrieve the next file name. When the function returns zero, there
are no more file names.
Epsilon uses this same method to retrieve server messages or DDE
messages. When such a message arrives from another program, Epsilon
parses the message as if it were a command line and then adds each
file name to its list of drag-drop results. Epsilon for Unix doesn't
support file drag and drop or DDE, only server messages from another
copy of Epsilon.
When Epsilon returns the WIN_DRAG_DROP key, it also sets some
mouse variables to indicate the source of the files that can be
retrieved through drag_drop_result( ). It sets
mouse_screen, mouse_x, mouse_y, and similar
variables to indicate exactly where the files were dropped. If the
message arrived via DDE or due to -add or -wait, then
mouse_screen will be -1 .
The drag_drop_result( ) primitive returns 2 to indicate -wait
was used to send the file name; 1 otherwise. If -wait was used
in a client instance of Epsilon, the do_resume_client( )
primitive may be used to signal waiting clients that the user has
finished editing the desired file and they may now resume.
The drag_drop_handler( ) subroutine in mouse.e handles the
WIN_DRAG_DROP key. Don't bind this key to a subroutine with a
different name; Epsilon requires that the WIN_DRAG_DROP key be
bound to a function named drag_drop_handler( ) for correct
handling of drag-drop.
A function may set the reject_client_connections variable to
keep Epsilon from accepting any files or other messages from other
clients, via either server messages or DDE. (Files may still be
dropped on Epsilon.) The 1 bit keeps Epsilon from accepting these
messages. Other instances of Epsilon that use the
-add flag will not see an instance of Epsilon where this bit has
been set.
The 2 bit in reject_client_connections lets Epsilon accept
and queue such messages, but doesn't deliver them. Epsilon won't
return the WIN_DRAG_DROP key as long as this bit is set, but
will remember the list of queued files and deliver them once this bit
has been cleared.
int dde_open(char *server, char *topic)
int dde_execute(int conv, char *msg, int timeout)
int dde_close(int conv)
Epsilon provides some primitives that you
can use to send a DDE Execute message to another program under
Windows.
First call dde_open( ) to open a conversation, providing the
name of a DDE server and the topic name. It returns a conversation
handle, or 0 if it couldn't open the conversation for any reason.
To send each DDE message, call dde_execute( ). Pass the
conversation handle from dde_open( ), the DDE Execute message text
to send, and a timeout value in milliseconds (10000, the recommended
value, waits 10 seconds for a response). The primitive returns
nonzero if it successfully sent the message.
Finally, call dde_close( ) when you've completed sending DDE
Execute messages, passing the conversation handle. It returns nonzero
if it successfully closed the connection.
Previous
|
Up
|
Next
|
System Primitives |
Primitives and EEL Subroutines |
WinHelp Interface |
Epsilon Programmer's Editor 14.04 manual. Copyright (C) 1984, 2021 by Lugaru Software Ltd. All rights reserved.
|