16 #include "cocoa_gui_p.h" 20 #include <gwenhywfar/inherit.h> 21 #include <gwenhywfar/debug.h> 22 #include <gwenhywfar/gui_be.h> 23 #include <gwenhywfar/i18n.h> 25 #include <gwenhywfar/text.h> 26 #include <gwenhywfar/mdigest.h> 27 #include <gwenhywfar/debug.h> 33 #define I18N(msg) GWEN_I18N_Translate(PACKAGE, msg) 106 NSLog(
@"OpenDialog Setup");
115 NSLog(
@"OpenDialog GetMainWidget");
124 NSLog(
@"OpenDialog EmitSignalToAll");
128 [g makeKeyAndOrderFront:nil];
182 const char *patterns,
203 NSString *title = nil;
204 if (caption && *caption)
205 title = [[[NSString alloc] initWithCString:caption encoding:NSUTF8StringEncoding] autorelease];
207 NSOpenPanel *openPanel = [NSOpenPanel openPanel];
209 if (title) [openPanel setTitle:title];
210 [openPanel setAllowsMultipleSelection:NO];
211 [openPanel setCanChooseFiles:(fnt == GWEN_Gui_FileNameType_OpenFileName)];
212 [openPanel setCanChooseDirectories:(fnt == GWEN_Gui_FileNameType_OpenDirectory)];
214 NSString *pathToFolder = nil;
216 if (fileName && *fileName)
217 pathToFolder = [[[NSString alloc] initWithCString:fileName encoding:NSUTF8StringEncoding] autorelease];
220 [openPanel setDirectory:pathToFolder];
222 NSInteger result = [openPanel runModal];
223 if (result == NSFileHandlingPanelOKButton) {
224 NSArray *urls = [openPanel URLs];
225 if (urls && [urls count] > 0) {
226 NSString *path = [[(NSURL*)[urls objectAtIndex:0] path] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
227 if (path && [path length]>0) {
228 const char *filename = [path cStringUsingEncoding:NSUTF8StringEncoding];
242 NSString *title = nil;
243 if (caption && *caption)
244 title = [[[NSString alloc] initWithCString:caption encoding:NSUTF8StringEncoding] autorelease];
246 NSSavePanel *savePanel = [NSSavePanel savePanel];
248 if (title) [savePanel setTitle:title];
249 [savePanel setCanCreateDirectories:YES];
251 NSString *pathToFolder = nil;
253 if (fileName && *fileName)
254 pathToFolder = [[[NSString alloc] initWithCString:fileName encoding:NSUTF8StringEncoding] autorelease];
257 [savePanel setDirectory:pathToFolder];
259 NSInteger result = [savePanel runModal];
260 if (result == NSFileHandlingPanelOKButton) {
261 NSURL *url = [savePanel URL];
263 NSString *path = [[url path] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
264 if (path && [path length]>0) {
265 const char *filename = [path cStringUsingEncoding:NSUTF8StringEncoding];
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
GWENHYWFAR_API GWEN_GUI_OPEN_DIALOG_FN GWEN_Gui_SetOpenDialogFn(GWEN_GUI *gui, GWEN_GUI_OPEN_DIALOG_FN f)
#define GWEN_ERROR_INVALID
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
CocoaWindow * CocoaGui_Dialog_GetMainWidget(const GWEN_DIALOG *dlg)
int COCOA_Gui_CloseDialog(GWEN_GUI *gui, GWEN_DIALOG *dlg)
int COCOA_Gui_GetFileName(GWEN_GUI *gui, const char *caption, GWEN_GUI_FILENAME_TYPE fnt, uint32_t flags, const char *patterns, GWEN_BUFFER *pathBuffer, uint32_t guiid)
#define GWEN_FREE_OBJECT(varname)
GWENHYWFAR_API GWEN_GUI_GET_FILENAME_FN GWEN_Gui_SetGetFileNameFn(GWEN_GUI *gui, GWEN_GUI_GET_FILENAME_FN f)
GWENHYWFAR_API GWEN_GUI_EXEC_DIALOG_FN GWEN_Gui_SetExecDialogFn(GWEN_GUI *gui, GWEN_GUI_EXEC_DIALOG_FN f)
void GWEN_Gui_AddFlags(GWEN_GUI *gui, uint32_t fl)
void CocoaGui_Dialog_Extend(GWEN_DIALOG *dlg)
GWEN_GUI * Cocoa_Gui_new()
struct GWEN_DIALOG GWEN_DIALOG
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
GWENHYWFAR_API void GWEN_Gui_UseDialogs(GWEN_GUI *gui)
#define GWEN_NEW_OBJECT(typ, varname)
int GWEN_Dialog_EmitSignalToAll(GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender)
#define GWEN_GUI_FLAGS_DIALOGSUPPORTED
GWENHYWFAR_API GWEN_GUI_CLOSE_DIALOG_FN GWEN_Gui_SetCloseDialogFn(GWEN_GUI *gui, GWEN_GUI_CLOSE_DIALOG_FN f)
GWENHYWFAR_API GWEN_GUI_RUN_DIALOG_FN GWEN_Gui_SetRunDialogFn(GWEN_GUI *gui, GWEN_GUI_RUN_DIALOG_FN f)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
int CocoaGui_Dialog_Setup(GWEN_DIALOG *dlg, NSWindow *parentWindow)
#define DBG_ERROR(dbg_logger, format, args...)
GWEN_GUI * GWEN_Gui_new(void)
#define GWEN_DIR_SEPARATOR
#define DBG_INFO(dbg_logger, format, args...)
int COCOA_Gui_ExecDialog(GWEN_GUI *gui, GWEN_DIALOG *dlg, uint32_t guiid)
#define GWEN_INHERIT(bt, t)
int Cocoa_Gui_Dialog_Run(GWEN_DIALOG *dlg, int untilEnd)
#define GWEN_ERROR_USER_ABORTED
int COCOA_Gui_RunDialog(GWEN_GUI *gui, GWEN_DIALOG *dlg, int untilEnd)
int COCOA_Gui_OpenDialog(GWEN_GUI *gui, GWEN_DIALOG *dlg, uint32_t guiid)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
void Cocoa_Gui_FreeData(void *bp, void *p)
void CocoaGui_Dialog_Unextend(GWEN_DIALOG *dlg)