mirror of https://github.com/buggins/dlangui.git
add dialogs, part 1
This commit is contained in:
parent
901c5be5d7
commit
576dbda406
|
@ -66,7 +66,7 @@
|
|||
<debuglevel>0</debuglevel>
|
||||
<debugids />
|
||||
<versionlevel>0</versionlevel>
|
||||
<versionids>Unicode USE_SDL USE_OPENGL</versionids>
|
||||
<versionids>Unicode</versionids>
|
||||
<dump_source>0</dump_source>
|
||||
<mapverbosity>0</mapverbosity>
|
||||
<createImplib>1</createImplib>
|
||||
|
@ -316,6 +316,10 @@
|
|||
<File path="src\dlangui\core\signals.d" />
|
||||
<File path="src\dlangui\core\types.d" />
|
||||
</Folder>
|
||||
<Folder name="dialogs">
|
||||
<File path="src\dlangui\dialogs\dialog.d" />
|
||||
<File path="src\dlangui\dialogs\filedlg.d" />
|
||||
</Folder>
|
||||
<Folder name="graphics">
|
||||
<File path="src\dlangui\graphics\drawbuf.d" />
|
||||
<File path="src\dlangui\graphics\fonts.d" />
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
<debuglevel>0</debuglevel>
|
||||
<debugids />
|
||||
<versionlevel>0</versionlevel>
|
||||
<versionids>Unicode USE_SDL USE_OPENGL</versionids>
|
||||
<versionids>Unicode</versionids>
|
||||
<dump_source>0</dump_source>
|
||||
<mapverbosity>3</mapverbosity>
|
||||
<createImplib>0</createImplib>
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
// Written in the D programming language.
|
||||
|
||||
/**
|
||||
DLANGUI library.
|
||||
|
||||
This module contains common Dialog implementation.
|
||||
|
||||
|
||||
Synopsis:
|
||||
|
||||
----
|
||||
import dlangui.platforms.common.platform;
|
||||
|
||||
----
|
||||
|
||||
Copyright: Vadim Lopatin, 2014
|
||||
License: Boost License 1.0
|
||||
Authors: Vadim Lopatin, coolreader.org@gmail.com
|
||||
*/
|
||||
module dlangui.dialogs.dialog;
|
||||
|
||||
import dlangui.core.i18n;
|
||||
import dlangui.widgets.layouts;
|
||||
import dlangui.widgets.controls;
|
||||
import dlangui.platforms.common.platform;
|
||||
|
||||
/// dialog flag bits
|
||||
enum DialogFlag : uint {
|
||||
/// dialog is modal
|
||||
Modal = 1,
|
||||
/// dialog can be resized
|
||||
Resizable = 2,
|
||||
}
|
||||
|
||||
/// base for all dialogs
|
||||
class Dialog : VerticalLayout {
|
||||
protected Window _window;
|
||||
protected Window _parentWindow;
|
||||
protected UIString _caption;
|
||||
protected uint _flags;
|
||||
|
||||
this(UIString caption, Window parentWindow = null, uint flags = DialogFlag.Modal) {
|
||||
super("dlg");
|
||||
_caption = caption;
|
||||
_parentWindow = parentWindow;
|
||||
}
|
||||
|
||||
@property UIString windowCaption() {
|
||||
return _caption;
|
||||
}
|
||||
|
||||
@property Dialog windowCaption(dstring caption) {
|
||||
_caption = caption;
|
||||
if (_window)
|
||||
_window.windowCaption = caption;
|
||||
return this;
|
||||
}
|
||||
|
||||
@property Dialog windowCaption(UIString caption) {
|
||||
_caption = caption;
|
||||
if (_window)
|
||||
_window.windowCaption = caption;
|
||||
return this;
|
||||
}
|
||||
|
||||
/// shows dialog
|
||||
void show() {
|
||||
uint wflags = 0;
|
||||
if (_flags & DialogFlag.Modal)
|
||||
wflags |= WindowFlag.Modal;
|
||||
if (_flags & DialogFlag.Resizable)
|
||||
wflags |= WindowFlag.Resizable;
|
||||
_window = Platform.instance.createWindow(_caption, _parentWindow, wflags);
|
||||
_window.mainWidget = this;
|
||||
_window.show();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
// Written in the D programming language.
|
||||
|
||||
/**
|
||||
DLANGUI library.
|
||||
|
||||
This module contains FileDialog implementation.
|
||||
|
||||
Can show dialog for open / save.
|
||||
|
||||
|
||||
Synopsis:
|
||||
|
||||
----
|
||||
import dlangui.dialogs.filedlg;
|
||||
|
||||
UIString caption = "Open File"d;
|
||||
auto dlg = new FileDialog(caption, window, FileDialogFlag.Open);
|
||||
dlg.show();
|
||||
|
||||
----
|
||||
|
||||
Copyright: Vadim Lopatin, 2014
|
||||
License: Boost License 1.0
|
||||
Authors: Vadim Lopatin, coolreader.org@gmail.com
|
||||
*/
|
||||
module dlangui.dialogs.filedlg;
|
||||
|
||||
import dlangui.core.events;
|
||||
import dlangui.core.i18n;
|
||||
import dlangui.widgets.controls;
|
||||
import dlangui.widgets.lists;
|
||||
import dlangui.widgets.popup;
|
||||
import dlangui.platforms.common.platform;
|
||||
import dlangui.dialogs.dialog;
|
||||
|
||||
/// flags for file dialog options
|
||||
enum FileDialogFlag : uint {
|
||||
/// file must exist (use this for open dialog)
|
||||
FileMustExist = 0x100,
|
||||
/// ask before saving to existing
|
||||
ConfirmOverwrite = 0x200,
|
||||
/// flags for Open dialog
|
||||
Open = FileMustExist,
|
||||
/// flags for Save dialog
|
||||
Save = ConfirmOverwrite,
|
||||
}
|
||||
|
||||
/// file open / save dialog
|
||||
class FileDialog : Dialog {
|
||||
this(UIString caption, Window parent, uint fileDialogFlags = DialogFlag.Modal | FileDialogFlag.FileMustExist) {
|
||||
super(caption, parent, fileDialogFlags);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue