static int file_border_select_exec(bContext *C, wmOperator *op) { ARegion *ar = CTX_wm_region(C); rcti rect; FileSelect ret; const bool select = (RNA_int_get(op->ptr, "gesture_mode") == GESTURE_MODAL_SELECT); const bool extend = RNA_boolean_get(op->ptr, "extend"); WM_operator_properties_border_to_rcti(op, &rect); if (!extend) { SpaceFile *sfile = CTX_wm_space_file(C); file_deselect_all(sfile, SELECTED_FILE); } BLI_rcti_isect(&(ar->v2d.mask), &rect, &rect); ret = file_select(C, &rect, select ? FILE_SEL_ADD : FILE_SEL_REMOVE, false, false); if (FILE_SELECT_DIR == ret) { WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_LIST, NULL); } else if (FILE_SELECT_FILE == ret) { WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_PARAMS, NULL); } return OPERATOR_FINISHED; }
static int file_select_invoke(bContext *C, wmOperator *op, const wmEvent *event) { ARegion *ar = CTX_wm_region(C); SpaceFile *sfile = CTX_wm_space_file(C); FileSelect ret; rcti rect; const bool extend = RNA_boolean_get(op->ptr, "extend"); const bool fill = RNA_boolean_get(op->ptr, "fill"); const bool do_diropen = RNA_boolean_get(op->ptr, "open"); if (ar->regiontype != RGN_TYPE_WINDOW) return OPERATOR_CANCELLED; rect.xmin = rect.xmax = event->mval[0]; rect.ymin = rect.ymax = event->mval[1]; if (!BLI_rcti_isect_pt(&ar->v2d.mask, rect.xmin, rect.ymin)) return OPERATOR_CANCELLED; /* single select, deselect all selected first */ if (!extend) file_deselect_all(sfile, SELECTED_FILE); ret = file_select(C, &rect, extend ? FILE_SEL_TOGGLE : FILE_SEL_ADD, fill, do_diropen); if (FILE_SELECT_DIR == ret) WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_LIST, NULL); else if (FILE_SELECT_FILE == ret) WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_PARAMS, NULL); WM_event_add_mousemove(C); /* for directory changes */ WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_PARAMS, NULL); return OPERATOR_FINISHED; }
static void __CDECL menu_open_file(short item, short title, void *data) { LOG(("%s", __FUNCTION__)); const char * filename = file_select(messages_get("OpenFile"), ""); if( filename != NULL ){ char * urltxt = local_file_to_url( filename ); if( urltxt ){ nsurl *url; nserror error; error = nsurl_create(urltxt, &url); if (error == NSERROR_OK) { error = browser_window_create(BROWSER_WINDOW_VERIFIABLE | BROWSER_WINDOW_HISTORY, url, NULL, NULL, NULL); nsurl_unref(url); } if (error != NSERROR_OK) { warn_user(messages_get_errorcode(error), 0); } free( urltxt ); } } }
static void __CDECL menu_save_page(short item, short title, void *data) { LOG(("%s", __FUNCTION__)); static bool init = true; bool is_folder=false; const char * path; if( !input_window ) return; if( init ){ init = false; save_complete_init(); } do { // TODO: localize string path = file_select("Select folder", ""); if (path) is_folder = is_dir(path); } while( !is_folder && path != NULL ); if( path != NULL ){ save_complete( input_window->browser->bw->current_content, path, NULL ); } }
void dotneato_initialize(int argc, char** argv, char *str) { char *rest,c; int i,nfiles; aginit(); nfiles = 0; for (i = 1; i < argc; i++) if (argv[i][0] != '-') nfiles++; Files = N_NEW(nfiles + 1, char *); Files[nfiles++] = str; nfiles = 0; CmdName = argv[0]; for (i = 1; i < argc; i++) { if (argv[i][0] == '-') { rest = &(argv[i][2]); switch (c = argv[i][1]) { case 'G': global_def(rest,agraphattr); break; case 'N': global_def(rest,agnodeattr); break; case 'E': global_def(rest,agedgeattr); break; case 'T': Output_lang = lang_select(rest); break; case 'V': fprintf(stderr,"%s version %s (%s)\n", Info[0], Info[1], Info[2]); exit (0); break; case 'l': use_library(rest[0]?rest:(*argv[i+1]!='-'?argv[++i]:NULL)); break; case 'n': Nop = TRUE; if (isdigit(*rest)) Nop = atoi (rest); break; case 'o': Output_file = file_select(rest[0]?rest:argv[++i]); break; case 's': PSinputscale = (rest[0]?atof(rest):POINTS_PER_INCH); break; case 'v': Verbose = TRUE; break; case 'x': Reduce = TRUE; break; default: fprintf(stderr,"%s: option -%c unrecognized\n",CmdName,c); } } else Files[nfiles++] = argv[i]; } if (Output_file == NULL) Output_file = stdout; /* set persistent attributes here */ agnodeattr(NULL,"label",NODENAME_ESC); }
static void __CDECL menu_open_file(WINDOW *win, int item, int title, void *data) { struct gui_window * gw; struct browser_window * bw ; LOG(("%s", __FUNCTION__)); const char * filename = file_select( messages_get("OpenFile"), "" ); if( filename != NULL ){ char * url = local_file_to_url( filename ); if( url ){ bw = browser_window_create(url, NULL, NULL, true, false); free( url ); } } }
static int file_border_select_exec(bContext *C, wmOperator *op) { ARegion *ar= CTX_wm_region(C); rcti rect; FileSelect ret; short select= (RNA_int_get(op->ptr, "gesture_mode")==GESTURE_MODAL_SELECT); rect.xmin= RNA_int_get(op->ptr, "xmin"); rect.ymin= RNA_int_get(op->ptr, "ymin"); rect.xmax= RNA_int_get(op->ptr, "xmax"); rect.ymax= RNA_int_get(op->ptr, "ymax"); BLI_isect_rcti(&(ar->v2d.mask), &rect, &rect); ret = file_select(C, &rect, select ? FILE_SEL_ADD : FILE_SEL_REMOVE, 0); if (FILE_SELECT_DIR == ret) { WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL); } else if (FILE_SELECT_FILE == ret) { WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_PARAMS, NULL); } return OPERATOR_FINISHED; }
static void __CDECL menu_save_page(WINDOW *win, int item, int title, void *data) { LOG(("%s", __FUNCTION__)); static bool init = true; bool is_folder=false; const char * path; if( !input_window ) return; if( init ){ init = false; save_complete_init(); } do { // TODO: localize string path = file_select( "Select folder", "" ); if( path ) { printf("testing: %s\n", path ); // dumb check if the selection is an folder: /*FILE * fp; fp = fopen( path, "r" ); if( !fp ){ is_folder = true; } else { fclose( fp ); form_alert(1, "[1][Please select an folder or abort!][OK]"); } */ is_folder = true; } } while( !is_folder && path != NULL ); if( path != NULL ){ save_complete( input_window->browser->bw->current_content, path ); } }
/* * set_tool_item_proc - ツールの項目を設定 */ static BOOL CALLBACK set_tool_item_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { TOOL_INFO *ti; TCHAR buf[BUF_SIZE]; int i; switch (uMsg) { case WM_INITDIALOG: if (lParam == 0) { // 新規追加 SendMessage(hDlg, WM_COMMAND, IDC_CHECK_MENU, 0); SetWindowLong(hDlg, GWL_USERDATA, 0); break; } ti = (TOOL_INFO *)lParam; SendDlgItemMessage(hDlg, IDC_EDIT_TITLE, WM_SETTEXT, 0, (LPARAM)ti->title); SendDlgItemMessage(hDlg, IDC_EDIT_LIB_PATH, WM_SETTEXT, 0, (LPARAM)ti->lib_file_path); SendDlgItemMessage(hDlg, IDC_EDIT_HEADER, WM_SETTEXT, 0, (LPARAM)ti->func_name); SendDlgItemMessage(hDlg, IDC_EDIT_CMD_LINE, WM_SETTEXT, 0, (LPARAM)ti->cmd_line); set_call_type(hDlg, ti->call_type); CheckDlgButton(hDlg, IDC_CHECK_COPY_PATE, ti->copy_paste); CheckDlgButton(hDlg, IDC_CHECK_OLD, ti->old); i = 0; if (ti->modifiers & MOD_SHIFT) { i |= HOTKEYF_SHIFT; } if (ti->modifiers & MOD_CONTROL) { i |= HOTKEYF_CONTROL; } if (ti->modifiers & MOD_ALT) { i |= HOTKEYF_ALT; } if (ti->modifiers & MOD_WIN) { i |= HOTKEYF_WIN; } if (ti->virtkey != 0) { SendDlgItemMessage(hDlg, IDC_HOTKEY_TOOL, HKM_SETHOTKEY, (WPARAM)MAKEWORD(ti->virtkey, i), 0); } SendMessage(hDlg, WM_COMMAND, IDC_CHECK_MENU, 0); SetWindowLong(hDlg, GWL_USERDATA, lParam); break; case WM_CLOSE: EndDialog(hDlg, FALSE); break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_CHECK_MENU: EnableWindow(GetDlgItem(hDlg, IDC_CHECK_COPY_PATE), IsDlgButtonChecked(hDlg, IDC_CHECK_MENU)); EnableWindow(GetDlgItem(hDlg, IDC_HOTKEY_TOOL), IsDlgButtonChecked(hDlg, IDC_CHECK_MENU)); break; case IDC_BUTTON_FILE_SELECT: // ファイル選択 SetFocus(GetDlgItem(hDlg, IDC_EDIT_LIB_PATH)); if (file_select(hDlg, TEXT("*.dll\0*.dll\0*.*\0*.*\0\0"), 1, buf) == -1) { break; } SendDlgItemMessage(hDlg, IDC_EDIT_LIB_PATH, WM_SETTEXT, 0, (LPARAM)buf); SendDlgItemMessage(hDlg, IDC_EDIT_HEADER, WM_SETTEXT, 0, (LPARAM)TEXT("")); case IDC_BUTTON_FUNC_SELECT: // ツール選択 *buf = TEXT('\0'); SendDlgItemMessage(hDlg, IDC_EDIT_LIB_PATH, WM_GETTEXT, BUF_SIZE - 1, (LPARAM)buf); if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_DIALOG_SELECT_FUNC), hDlg, select_tool_proc, (LPARAM)buf) == TRUE) { SendMessage(hDlg, WM_COMMAND, IDC_CHECK_MENU, 0); } break; case IDOK: *buf = TEXT('\0'); SendDlgItemMessage(hDlg, IDC_EDIT_TITLE, WM_GETTEXT, BUF_SIZE - 1, (LPARAM)buf); if (*buf == TEXT('\0')) { MessageBox(hDlg, message_get_res(IDS_TOOL_ERR_TITLE), WINDOW_TITLE, MB_ICONEXCLAMATION); SetFocus(GetDlgItem(hDlg, IDC_EDIT_TITLE)); break; } if ((ti = (TOOL_INFO *)GetWindowLong(hDlg, GWL_USERDATA)) == NULL) { ti = mem_calloc(sizeof(TOOL_INFO)); } if (ti != NULL) { // 設定取得 alloc_get_text(GetDlgItem(hDlg, IDC_EDIT_TITLE), &ti->title); alloc_get_text(GetDlgItem(hDlg, IDC_EDIT_LIB_PATH), &ti->lib_file_path); alloc_get_text(GetDlgItem(hDlg, IDC_EDIT_HEADER), &ti->func_name); alloc_get_text(GetDlgItem(hDlg, IDC_EDIT_CMD_LINE), &ti->cmd_line); ti->call_type = 0; ti->call_type |= (IsDlgButtonChecked(hDlg, IDC_CHECK_MENU) * CALLTYPE_MENU); ti->call_type |= (IsDlgButtonChecked(hDlg, IDC_CHECK_VIEWER) * CALLTYPE_VIEWER); ti->call_type |= (IsDlgButtonChecked(hDlg, IDC_CHECK_VIEWER_OPEN) * CALLTYPE_VIEWER_OPEN); ti->call_type |= (IsDlgButtonChecked(hDlg, IDC_CHECK_VIEWER_CLOSE) * CALLTYPE_VIEWER_CLOSE); ti->call_type |= (IsDlgButtonChecked(hDlg, IDC_CHECK_HISTORY) * CALLTYPE_ADD_HISTORY); ti->call_type |= (IsDlgButtonChecked(hDlg, IDC_CHECK_CLIPBOARD) * CALLTYPE_ITEM_TO_CLIPBOARD); ti->call_type |= (IsDlgButtonChecked(hDlg, IDC_CHECK_START) * CALLTYPE_START); ti->call_type |= (IsDlgButtonChecked(hDlg, IDC_CHECK_END) * CALLTYPE_END); ti->copy_paste = IsDlgButtonChecked(hDlg, IDC_CHECK_COPY_PATE); ti->old = IsDlgButtonChecked(hDlg, IDC_CHECK_OLD); i = SendDlgItemMessage(hDlg, IDC_HOTKEY_TOOL, HKM_GETHOTKEY, 0, 0); ti->virtkey = LOBYTE(i); i = HIBYTE(i); ti->modifiers = ((i & HOTKEYF_SHIFT) ? MOD_SHIFT : 0) | ((i & HOTKEYF_CONTROL) ? MOD_CONTROL : 0) | ((i & HOTKEYF_ALT) ? MOD_ALT : 0) | ((i & HOTKEYF_WIN) ? MOD_WIN : 0); } if (GetWindowLong(hDlg, GWL_USERDATA) == 0) { // 新規 HWND pWnd = PropSheet_GetCurrentPageHwnd(GetParent(hDlg)); listview_set_tool(GetDlgItem(pWnd, IDC_LIST_TOOL), ti, FALSE); } EndDialog(hDlg, TRUE); break; case IDCANCEL: EndDialog(hDlg, FALSE); break; } break; default: return FALSE; } return TRUE; }