mirror of
https://gitea.nishi.boats/pyrite-dev/milsko
synced 2025-12-30 22:20:50 +00:00
add directory chooser
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@815 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
5
BorMakefile
generated
5
BorMakefile
generated
@@ -23,6 +23,7 @@ clean:
|
||||
del /f /q src\cursor\text.obj
|
||||
del /f /q src\default.obj
|
||||
del /f /q src\dialog\colorpicker.obj
|
||||
del /f /q src\dialog\directorychooser.obj
|
||||
del /f /q src\dialog\filechooser.obj
|
||||
del /f /q src\dialog\messagebox.obj
|
||||
del /f /q src\draw.obj
|
||||
@@ -73,8 +74,8 @@ clean:
|
||||
del /f /q src\Mw.dll
|
||||
del /f /q src\Mw.lib
|
||||
|
||||
src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj
|
||||
$(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib
|
||||
src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj
|
||||
$(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib
|
||||
implib src\Mw.lib src\Mw.dll
|
||||
|
||||
.c.obj:
|
||||
|
||||
5
NTMakefile
generated
5
NTMakefile
generated
@@ -23,6 +23,7 @@ clean:
|
||||
del /f /q src\cursor\text.obj
|
||||
del /f /q src\default.obj
|
||||
del /f /q src\dialog\colorpicker.obj
|
||||
del /f /q src\dialog\directorychooser.obj
|
||||
del /f /q src\dialog\filechooser.obj
|
||||
del /f /q src\dialog\messagebox.obj
|
||||
del /f /q src\draw.obj
|
||||
@@ -73,8 +74,8 @@ clean:
|
||||
del /f /q src\Mw.dll
|
||||
del /f /q src\Mw.lib
|
||||
|
||||
src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj
|
||||
$(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib
|
||||
src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj
|
||||
$(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib
|
||||
|
||||
|
||||
.c.obj:
|
||||
|
||||
7
WatMakefile
generated
7
WatMakefile
generated
@@ -22,6 +22,7 @@ clean: .SYMBOLIC
|
||||
%erase src/cursor/text.obj
|
||||
%erase src/default.obj
|
||||
%erase src/dialog/colorpicker.obj
|
||||
%erase src/dialog/directorychooser.obj
|
||||
%erase src/dialog/filechooser.obj
|
||||
%erase src/dialog/messagebox.obj
|
||||
%erase src/draw.obj
|
||||
@@ -72,8 +73,8 @@ clean: .SYMBOLIC
|
||||
%erase src/Mw.dll
|
||||
%erase src/Mw.lib
|
||||
|
||||
src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/font/boldfont.obj src/font/boldttf.obj src/font/font.obj src/font/ttf.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text.obj src/unicode.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj
|
||||
$(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/font/boldfont.obj file src/font/boldttf.obj file src/font/font.obj file src/font/ttf.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text.obj file src/unicode.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib
|
||||
src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/font/boldfont.obj src/font/boldttf.obj src/font/font.obj src/font/ttf.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text.obj src/unicode.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj
|
||||
$(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/font/boldfont.obj file src/font/boldttf.obj file src/font/font.obj file src/font/ttf.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text.obj file src/unicode.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib
|
||||
|
||||
|
||||
|
||||
@@ -109,6 +110,8 @@ src/default.obj: src/default.c
|
||||
$(CC) $(CFLAGS) -fo=$@ $<
|
||||
src/dialog/colorpicker.obj: src/dialog/colorpicker.c
|
||||
$(CC) $(CFLAGS) -fo=$@ $<
|
||||
src/dialog/directorychooser.obj: src/dialog/directorychooser.c
|
||||
$(CC) $(CFLAGS) -fo=$@ $<
|
||||
src/dialog/filechooser.obj: src/dialog/filechooser.c
|
||||
$(CC) $(CFLAGS) -fo=$@ $<
|
||||
src/dialog/messagebox.obj: src/dialog/messagebox.c
|
||||
|
||||
28
include/Mw/Dialog/DirectoryChooser.h
Normal file
28
include/Mw/Dialog/DirectoryChooser.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/* $Id$ */
|
||||
/*!
|
||||
* @file Mw/Dialog/DirectoryChooser.h
|
||||
* @brief Directory chooser
|
||||
*/
|
||||
#ifndef __MW_DIRECTORYCHOOSER_H__
|
||||
#define __MW_DIRECTORYCHOOSER_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* @brief Creates a directory chooser
|
||||
* @param handle Widget
|
||||
* @param title Title text
|
||||
* @return Widget
|
||||
*/
|
||||
MWDECL MwWidget MwDirectoryChooser(MwWidget handle, const char* title);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -21,6 +21,15 @@ extern "C" {
|
||||
*/
|
||||
MWDECL MwWidget MwFileChooser(MwWidget handle, const char* title);
|
||||
|
||||
/*!
|
||||
* @brief Creates a file chooser
|
||||
* @param handle Widget
|
||||
* @param title Title text
|
||||
* @param dir Show directory only or not
|
||||
* @return Widget
|
||||
*/
|
||||
MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -44,20 +44,21 @@
|
||||
#define MwNfont "Vfont"
|
||||
#define MwNboldFont "VboldFont"
|
||||
|
||||
#define MwNactivateHandler "Cactivate" /* NULL/int* (MwListBox)/void* (MwTreeView) */
|
||||
#define MwNresizeHandler "Cresize" /* NULL */
|
||||
#define MwNtickHandler "Ctick" /* NULL */
|
||||
#define MwNmenuHandler "Cmenu" /* MwMenu */
|
||||
#define MwNmouseDownHandler "CmouseDown" /* MwLLMouse* */
|
||||
#define MwNmouseUpHandler "CmouseUp" /* same as MwNmouseDownHandler */
|
||||
#define MwNmouseMoveHandler "CmouseMove" /* MwPoint* */
|
||||
#define MwNchangedHandler "Cchanged" /* NULL/int* (MwComboBox) */
|
||||
#define MwNkeyHandler "Ckey" /* int* (MwLLKeyEnum or character code) */
|
||||
#define MwNkeyReleaseHandler "CkeyRelease" /* same as MwNkeyHandler */
|
||||
#define MwNcloseHandler "Cclose" /* NULL */
|
||||
#define MwNfocusInHandler "CfocusIn" /* NULL */
|
||||
#define MwNfocusOutHandler "CfocusOut" /* NULL */
|
||||
#define MwNfileChosenHandler "CfileChosen" /* char* */
|
||||
#define MwNactivateHandler "Cactivate" /* NULL/int* (MwListBox)/void* (MwTreeView) */
|
||||
#define MwNresizeHandler "Cresize" /* NULL */
|
||||
#define MwNtickHandler "Ctick" /* NULL */
|
||||
#define MwNmenuHandler "Cmenu" /* MwMenu */
|
||||
#define MwNmouseDownHandler "CmouseDown" /* MwLLMouse* */
|
||||
#define MwNmouseUpHandler "CmouseUp" /* same as MwNmouseDownHandler */
|
||||
#define MwNmouseMoveHandler "CmouseMove" /* MwPoint* */
|
||||
#define MwNchangedHandler "Cchanged" /* NULL/int* (MwComboBox) */
|
||||
#define MwNkeyHandler "Ckey" /* int* (MwLLKeyEnum or character code) */
|
||||
#define MwNkeyReleaseHandler "CkeyRelease" /* same as MwNkeyHandler */
|
||||
#define MwNcloseHandler "Cclose" /* NULL */
|
||||
#define MwNfocusInHandler "CfocusIn" /* NULL */
|
||||
#define MwNfocusOutHandler "CfocusOut" /* NULL */
|
||||
#define MwNfileChosenHandler "CfileChosen" /* char* */
|
||||
#define MwNdirectoryChosenHandler MwNfileChosenHandler
|
||||
#define MwNcolorChosenHandler "CcolorChosen" /* MwRGB* */
|
||||
|
||||
#endif
|
||||
|
||||
6
src/dialog/directorychooser.c
Normal file
6
src/dialog/directorychooser.c
Normal file
@@ -0,0 +1,6 @@
|
||||
/* $Id$ */
|
||||
#include <Mw/Milsko.h>
|
||||
|
||||
MwWidget MwDirectoryChooser(MwWidget handle, const char* title) {
|
||||
return MwFileChooserEx(handle, title, 1);
|
||||
}
|
||||
@@ -7,6 +7,7 @@ typedef struct filechooser {
|
||||
char* path;
|
||||
char** history;
|
||||
int history_seek;
|
||||
int dir_only;
|
||||
|
||||
MwDirectoryEntry** entries;
|
||||
MwDirectoryEntry** sorted_entries;
|
||||
@@ -68,16 +69,9 @@ static void cancel_window(MwWidget handle, void* user, void* call) {
|
||||
}
|
||||
|
||||
static void okay(MwWidget handle, void* user, void* call) {
|
||||
filechooser_t* fc = handle->parent->opaque;
|
||||
char* p;
|
||||
|
||||
(void)user;
|
||||
(void)call;
|
||||
|
||||
p = MwDirectoryJoin(fc->path, fc->sorted_entries[MwGetInteger(fc->files, MwNvalue) - 1]->name);
|
||||
MwDispatchUserHandler(handle->parent, MwNfileChosenHandler, p);
|
||||
free(p);
|
||||
|
||||
destroy(handle->parent);
|
||||
}
|
||||
|
||||
@@ -101,10 +95,48 @@ static void files_activate(MwWidget handle, void* user, void* call) {
|
||||
|
||||
free(p);
|
||||
} else {
|
||||
char* p;
|
||||
|
||||
p = MwDirectoryJoin(fc->path, fc->sorted_entries[MwGetInteger(fc->files, MwNvalue) - 1]->name);
|
||||
MwDispatchUserHandler(handle->parent, MwNfileChosenHandler, p);
|
||||
free(p);
|
||||
|
||||
okay(fc->okay, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void okay_activate(MwWidget handle, void* user, void* call) {
|
||||
filechooser_t* fc = handle->parent->opaque;
|
||||
char* t = (char*)MwGetText(fc->filename, MwNtext);
|
||||
struct stat s;
|
||||
char* p = NULL;
|
||||
|
||||
(void)user;
|
||||
(void)call;
|
||||
|
||||
if(t != NULL && t[0] == '/') {
|
||||
p = MwStringDuplicate(t);
|
||||
} else {
|
||||
p = MwDirectoryJoin(fc->path, t);
|
||||
}
|
||||
|
||||
if(t == NULL || strlen(t) == 0) {
|
||||
MwWidget msgbox = MwMessageBox(handle->parent, fc->dir_only ? "You have to type directory!" : "You have to type filename!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK);
|
||||
MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL);
|
||||
} else if(stat(p, &s) != 0) {
|
||||
MwWidget msgbox = MwMessageBox(handle->parent, "File does not exist!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK);
|
||||
MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL);
|
||||
} else if(fc->dir_only ? !S_ISDIR(s.st_mode) : 0) {
|
||||
MwWidget msgbox = MwMessageBox(handle->parent, "File is not permitted here!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK);
|
||||
MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL);
|
||||
} else {
|
||||
MwDispatchUserHandler(handle->parent, MwNfileChosenHandler, p);
|
||||
okay(fc->okay, NULL, NULL);
|
||||
}
|
||||
|
||||
if(p != NULL) free(p);
|
||||
}
|
||||
|
||||
static void nav_activate(MwWidget handle, void* user, void* call) {
|
||||
int index = *(int*)call;
|
||||
const char* e = MwListBoxGet(handle, index);
|
||||
@@ -293,6 +325,7 @@ static void layout(MwWidget handle) {
|
||||
wh = 24;
|
||||
if(fc->filename == NULL) {
|
||||
fc->filename = MwCreateWidget(MwEntryClass, "filename", handle, wx, wy, ww, wh);
|
||||
MwAddUserHandler(fc->filename, MwNactivateHandler, okay_activate, NULL);
|
||||
} else {
|
||||
MwVaApply(fc->filename,
|
||||
MwNx, wx,
|
||||
@@ -308,7 +341,7 @@ static void layout(MwWidget handle) {
|
||||
wh = 24;
|
||||
if(fc->filename_label == NULL) {
|
||||
fc->filename_label = MwVaCreateWidget(MwLabelClass, "filename_label", handle, wx, wy, ww, wh,
|
||||
MwNtext, "Filename:",
|
||||
MwNtext, fc->dir_only ? "Directory:" : "Filename:",
|
||||
NULL);
|
||||
} else {
|
||||
MwVaApply(fc->filename_label,
|
||||
@@ -328,7 +361,7 @@ static void layout(MwWidget handle) {
|
||||
MwNtext, "Okay",
|
||||
NULL);
|
||||
|
||||
MwAddUserHandler(fc->okay, MwNactivateHandler, okay, NULL);
|
||||
MwAddUserHandler(fc->okay, MwNactivateHandler, okay_activate, NULL);
|
||||
} else {
|
||||
MwVaApply(fc->okay,
|
||||
MwNx, wx,
|
||||
@@ -416,6 +449,16 @@ static void scan(MwWidget handle, const char* path, int record) {
|
||||
MwNtext, path,
|
||||
NULL);
|
||||
|
||||
if(fc->dir_only) {
|
||||
MwVaApply(fc->filename,
|
||||
MwNtext, path,
|
||||
NULL);
|
||||
} else {
|
||||
MwVaApply(fc->filename,
|
||||
MwNtext, "",
|
||||
NULL);
|
||||
}
|
||||
|
||||
MwListBoxReset(fc->files);
|
||||
MwListBoxSetWidth(fc->files, 0, -128 - 96);
|
||||
MwListBoxSetWidth(fc->files, 1, 128);
|
||||
@@ -443,7 +486,7 @@ static void scan(MwWidget handle, const char* path, int record) {
|
||||
}
|
||||
}
|
||||
for(i = 0; i < arrlen(fc->entries); i++) {
|
||||
if(fc->entries[i]->type == MwDIRECTORY_FILE) {
|
||||
if(fc->entries[i]->type == MwDIRECTORY_FILE && !fc->dir_only) {
|
||||
char date[128];
|
||||
char size[128];
|
||||
|
||||
@@ -463,7 +506,7 @@ static void scan(MwWidget handle, const char* path, int record) {
|
||||
MwListBoxDestroyPacket(p);
|
||||
}
|
||||
|
||||
MwWidget MwFileChooser(MwWidget handle, const char* title) {
|
||||
MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir) {
|
||||
MwWidget window;
|
||||
int w, h;
|
||||
filechooser_t* fc = malloc(sizeof(*fc));
|
||||
@@ -497,6 +540,7 @@ MwWidget MwFileChooser(MwWidget handle, const char* title) {
|
||||
fc->forward = MwLoadIcon(window, MwIconForward);
|
||||
fc->up = MwLoadIcon(window, MwIconUp);
|
||||
fc->computer = MwLoadIcon(window, MwIconComputer);
|
||||
fc->dir_only = dir;
|
||||
|
||||
icon = MwLoadIcon(window, MwIconSearch);
|
||||
MwVaApply(window,
|
||||
@@ -519,3 +563,7 @@ MwWidget MwFileChooser(MwWidget handle, const char* title) {
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
MwWidget MwFileChooser(MwWidget handle, const char* title) {
|
||||
return MwFileChooserEx(handle, title, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user