GrafX2 2.9.3227
The ultimate 256-color painting program
filesel.h File Reference

Fileselector window, used for loading and saving images and brushes. More...

#include "struct.h"
#include "loadsave.h"
+ Include dependency graph for filesel.h:
+ This graph shows which files directly or indirectly include this file:

Functions

byte Button_Load_or_Save (T_Selector_settings *settings, byte load, T_IO_Context *context)
 Launch the Load/Save dialog (file selector) More...
 
void Free_fileselector_list (T_Fileselector *list)
 This function free all item in the list, but not the list itself. More...
 
void Sort_list_of_files (T_Fileselector *list)
 Sort a file/directory list. More...
 
T_Fileselector_itemGet_item_by_index (T_Fileselector *list, unsigned short index)
 Fast access to a list item. More...
 
void Read_list_of_drives (T_Fileselector *list, byte name_length)
 
short Find_file_in_fileselector (T_Fileselector *list, const char *fname)
 Look for a file name in a file selector list. More...
 
void Locate_list_item (T_List_button *list, short selected_item)
 
int Quicksearch_list (T_List_button *list, T_Fileselector *selector)
 
void Reset_quicksearch (void)
 Reset the current quicksearch string. More...
 

Detailed Description

Fileselector window, used for loading and saving images and brushes.

Function Documentation

◆ Button_Load_or_Save()

byte Button_Load_or_Save ( T_Selector_settings settings,
byte  load,
T_IO_Context context 
)

Launch the Load/Save dialog (file selector)

Parameters
settingsthe settings associated with this file selector
load1 for a load dialog, 0 for a save
contextthe IO context
Returns
0 if the user cancelled the load/save
1 if the user want to load/save a file
Todo:
convert label to unicode before editing

References Back_color, T_Config::Bookmark_directory, T_Config::Bookmark_label, BUTTON_HELP, BUTTON_LOAD, BUTTON_SAVE, Calculate_relative_path(), Change_directory(), Check_timer(), Close_window(), T_IO_Context::Comment, T_Format::Comment, COMMENT_SIZE, Compute_click_offset_in_fileselector(), Compute_optimal_menu_colors(), Config, Confirmation_box(), CONTEXT_BRUSH, CONTEXT_MAIN_IMAGE, CONTEXT_PALETTE, CONTEXT_PREVIEW_PALETTE, Data_directory, T_Format::Default_extension, DEFAULT_FILEFORMAT, Destroy_context(), T_Selector_settings::Directory, Directory_exists(), T_Selector_settings::Directory_unicode, Display_bookmark(), Display_cursor(), Display_file_list(), Display_menu(), Error, Extract_filename(), T_IO_Context::File_directory, File_exists(), File_formats, T_IO_Context::File_name, T_IO_Context::File_name_unicode, Filelist, T_Selector_settings::filename, FILENAME_COMPARE, T_Selector_settings::filename_unicode, Find_file_in_fileselector(), Find_last_separator(), T_Fileselector::First, T_IO_Context::Format, format, FORMAT_ALL_FILES, FORMAT_CLIPBOARD, T_Selector_settings::Format_filter, Free_fileselector_list(), FSOBJECT_DIR, FSOBJECT_DRIVE, FSOBJECT_FILE, T_Fileselector_item::Full_name, Get_current_directory(), Get_fileformat(), Get_item_by_index(), Get_selected_item(), Get_Unicode_Filename(), GFX2_DEBUG, GFX2_INFO, GFX2_Log(), GFX2_WARNING, Hide_cursor, Highlight_file(), ICON_STAR, Init_chrono(), Init_context_preview(), INPUT_TYPE_FILENAME, INPUT_TYPE_STRING, Is_shortcut(), Key, KEY_BACKSPACE, KEY_DELETE, KEY_DOWN, KEY_END, KEY_ESC, KEY_HOME, KEY_MOUSEWHEELDOWN, KEY_MOUSEWHEELUP, KEY_NONE, KEY_PAGEDOWN, KEY_PAGEUP, KEY_RETURN, KEY_UNKNOWN, KEY_UP, T_Format::Label, LEFT_SIDE, Load, Load_image(), Main, MC_Black, MC_Dark, MC_Light, Menu_factor_Y, Menu_Y_before_window, Mouse_K, NB_BOOKMARKS, T_Fileselector::Nb_directories, T_Fileselector::Nb_elements, Nb_known_formats(), New_preview_is_needed, NULL, T_Selector_settings::Offset, Open_window(), T_Document::palette, T_Format::Palette_only, PARENT_DIR, T_Selector_settings::Position, Position_last_dot(), Position_last_dot_unicode(), Prepare_and_display_filelist(), PREVIEW_HEIGHT, PREVIEW_WIDTH, Print_filename_in_fileselector(), Print_in_window(), Quicksearch(), Quit_is_required, Read_list_of_drives(), Read_list_of_files(), Readline(), Readline_ex(), Readline_ex_unicode(), Reload_list_of_files(), Remove_directory(), Remove_path(), Reset_quicksearch(), RIGHT_SIDE, T_Format::Save, Save, Save_image(), Scroll_fileselector(), Selected_type, Selector, Selector_end(), Selector_home(), Selector_page_down(), Selector_page_up(), Selector_scroll_down(), Selector_scroll_up(), Set_palette(), SHORTCUT_COPY, SHORTCUT_PASTE, Sort_list_of_files(), SPECIAL_LOAD_BRUSH, SPECIAL_SAVE_BRUSH, T_Config::Timer_delay, Timer_state, T_IO_Context::Type, T_Fileselector_item::Type, Unicode_char_strlcat(), Unicode_char_strlcpy(), Unicode_strdup(), Unicode_strlcpy(), Unicode_strlen(), Unselect_button(), Update_window_area, Wait_end_of_click(), Window_attribute2, Window_clicked_button(), Window_display_frame_in(), Window_display_icon_sprite(), Window_dropdown_add_item(), Window_height, Window_help(), Window_pos_Y, Window_rectangle(), Window_set_dropdown_button(), Window_set_input_button(), Window_set_normal_button(), Window_set_scroller_button(), Window_set_special_button(), Window_width, and Windows_open.

Referenced by Load_picture(), and Save_picture().

◆ Free_fileselector_list()

void Free_fileselector_list ( T_Fileselector list)

This function free all item in the list, but not the list itself.

Parameters
listthe linked list

References T_Fileselector::First, T_Fileselector_item::Next, NULL, Recount_files(), T_Fileselector_item::Unicode_full_name, and T_Fileselector_item::Unicode_short_name.

Referenced by Button_Load_or_Save(), Button_Skins(), Read_list_of_drives(), and Read_list_of_files().

◆ Sort_list_of_files()

void Sort_list_of_files ( T_Fileselector list)

Sort a file/directory list.

The sord is done in that order : Directories first, in alphabetical order, then Files, in alphabetical order.

List counts and index are updated.

Parameters
listthe linked list

References FILENAME_COMPARE, FILENAME_COMPARE_UNICODE, T_Fileselector::First, T_Fileselector_item::Full_name, T_Fileselector_item::Next, NULL, PARENT_DIR, T_Fileselector_item::Previous, Recount_files(), T_Fileselector_item::Type, and T_Fileselector_item::Unicode_full_name.

Referenced by Button_Load_or_Save(), Button_Skins(), and Reload_list_of_files().

◆ Get_item_by_index()

T_Fileselector_item * Get_item_by_index ( T_Fileselector list,
unsigned short  index 
)

Fast access to a list item.

Parameters
listthe linked list
indexthe item index to access
Returns
the item at the index position in the list
NULL in case of error

References T_Fileselector::First, T_Fileselector::Index, T_Fileselector::Nb_elements, T_Fileselector_item::Next, and NULL.

Referenced by Button_Load_or_Save(), Button_Skins(), Display_file_list(), Draw_one_skin_name(), and Get_selected_item().

◆ Read_list_of_drives()

◆ Find_file_in_fileselector()

short Find_file_in_fileselector ( T_Fileselector list,
const char *  fname 
)

Look for a file name in a file selector list.

Parameters
listThe file selector list
fnameThe file name to search for
Returns
the index of the file
-1 if the file name was not found

References T_Fileselector::First, T_Fileselector_item::Full_name, T_Fileselector_item::Next, and NULL.

Referenced by Button_Load_or_Save(), and Button_Skins().

◆ Locate_list_item()

◆ Quicksearch_list()

◆ Reset_quicksearch()

void Reset_quicksearch ( void  )

Reset the current quicksearch string.

References quicksearch_filename.

Referenced by Button_Load_or_Save(), and Quicksearch().