fix: some file didn't have the svn:eol-style native yet
This commit is contained in:
@@ -1,165 +1,165 @@
|
||||
/****************************************************************************
|
||||
|
||||
GLUI User Interface Toolkit
|
||||
---------------------------
|
||||
|
||||
glui_filebrowser.cpp - GLUI_FileBrowser control class
|
||||
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Copyright (c) 1998 Paul Rademacher
|
||||
|
||||
This program is freely distributable without licensing fees and is
|
||||
provided without guarantee or warrantee expressed or implied. This
|
||||
program is -not- in the public domain.
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#include "GL/glui.h"
|
||||
#include "glui_internal.h"
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#include <dirent.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
GLUI_FileBrowser::GLUI_FileBrowser( GLUI_Node *parent,
|
||||
const char *name,
|
||||
int type,
|
||||
int id,
|
||||
GLUI_CB cb)
|
||||
{
|
||||
common_init();
|
||||
|
||||
set_name( name );
|
||||
user_id = id;
|
||||
int_val = type;
|
||||
callback = cb;
|
||||
|
||||
parent->add_control( this );
|
||||
list = new GLUI_List(this, true, 1);
|
||||
list->set_object_callback( GLUI_FileBrowser::dir_list_callback, this );
|
||||
list->set_click_type(GLUI_DOUBLE_CLICK);
|
||||
this->fbreaddir(this->current_dir.c_str());
|
||||
}
|
||||
|
||||
/****************************** GLUI_FileBrowser::draw() **********/
|
||||
|
||||
void GLUI_FileBrowser::dir_list_callback(GLUI_Control *glui_object) {
|
||||
GLUI_List *list = glui_object->dynamicCastGLUI_List();
|
||||
if (!list)
|
||||
return;
|
||||
GLUI_FileBrowser* me = list->associated_object->dynamicCastGLUI_FileBrowser();
|
||||
if (!me)
|
||||
return;
|
||||
int this_item;
|
||||
const char *selected;
|
||||
this_item = list->get_current_item();
|
||||
if (this_item > 0) { /* file or directory selected */
|
||||
selected = list->get_item_ptr( this_item )->text.c_str();
|
||||
if (selected[0] == '/' || selected[0] == '\\') {
|
||||
if (me->allow_change_dir) {
|
||||
#ifdef __GNUC__
|
||||
chdir(selected+1);
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
SetCurrentDirectory(selected+1);
|
||||
#endif
|
||||
me->fbreaddir(".");
|
||||
}
|
||||
} else {
|
||||
me->file = selected;
|
||||
me->execute_callback();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void GLUI_FileBrowser::fbreaddir(const char *d) {
|
||||
GLUI_String item;
|
||||
int i = 0;
|
||||
|
||||
if (!d)
|
||||
return;
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
WIN32_FIND_DATA FN;
|
||||
HANDLE hFind;
|
||||
//char search_arg[MAX_PATH], new_file_path[MAX_PATH];
|
||||
//sprintf(search_arg, "%s\\*.*", path_name);
|
||||
|
||||
hFind = FindFirstFile("*.*", &FN);
|
||||
if (list) {
|
||||
list->delete_all();
|
||||
if (hFind != INVALID_HANDLE_VALUE) {
|
||||
do {
|
||||
int len = int(strlen(FN.cFileName));
|
||||
if (FN.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||
item = '\\';
|
||||
item += FN.cFileName;
|
||||
} else {
|
||||
item = FN.cFileName;
|
||||
}
|
||||
list->add_item(i,item.c_str());
|
||||
i++;
|
||||
} while (FindNextFile(hFind, &FN) != 0);
|
||||
|
||||
if (GetLastError() == ERROR_NO_MORE_FILES)
|
||||
FindClose(&FN);
|
||||
else
|
||||
perror("fbreaddir");
|
||||
}
|
||||
}
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
|
||||
DIR *dir;
|
||||
struct dirent *dirp;
|
||||
struct stat dr;
|
||||
|
||||
if (list) {
|
||||
list->delete_all();
|
||||
if ((dir = opendir(d)) == NULL)
|
||||
perror("fbreaddir:");
|
||||
else {
|
||||
while ((dirp = readdir(dir)) != NULL) /* open directory */
|
||||
{
|
||||
if (!lstat(dirp->d_name,&dr) && S_ISDIR(dr.st_mode)) /* dir is directory */
|
||||
item = dirp->d_name + GLUI_String("/");
|
||||
else
|
||||
item = dirp->d_name;
|
||||
|
||||
list->add_item(i,item.c_str());
|
||||
i++;
|
||||
}
|
||||
closedir(dir);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void ProcessFiles(const char *path_name)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void GLUI_FileBrowser::set_w(int w)
|
||||
{
|
||||
if (list) list->set_w(w);
|
||||
}
|
||||
|
||||
void GLUI_FileBrowser::set_h(int h)
|
||||
{
|
||||
if (list) list->set_h(h);
|
||||
}
|
||||
/****************************************************************************
|
||||
|
||||
GLUI User Interface Toolkit
|
||||
---------------------------
|
||||
|
||||
glui_filebrowser.cpp - GLUI_FileBrowser control class
|
||||
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Copyright (c) 1998 Paul Rademacher
|
||||
|
||||
This program is freely distributable without licensing fees and is
|
||||
provided without guarantee or warrantee expressed or implied. This
|
||||
program is -not- in the public domain.
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
#include "GL/glui.h"
|
||||
#include "glui_internal.h"
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#include <dirent.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
GLUI_FileBrowser::GLUI_FileBrowser( GLUI_Node *parent,
|
||||
const char *name,
|
||||
int type,
|
||||
int id,
|
||||
GLUI_CB cb)
|
||||
{
|
||||
common_init();
|
||||
|
||||
set_name( name );
|
||||
user_id = id;
|
||||
int_val = type;
|
||||
callback = cb;
|
||||
|
||||
parent->add_control( this );
|
||||
list = new GLUI_List(this, true, 1);
|
||||
list->set_object_callback( GLUI_FileBrowser::dir_list_callback, this );
|
||||
list->set_click_type(GLUI_DOUBLE_CLICK);
|
||||
this->fbreaddir(this->current_dir.c_str());
|
||||
}
|
||||
|
||||
/****************************** GLUI_FileBrowser::draw() **********/
|
||||
|
||||
void GLUI_FileBrowser::dir_list_callback(GLUI_Control *glui_object) {
|
||||
GLUI_List *list = glui_object->dynamicCastGLUI_List();
|
||||
if (!list)
|
||||
return;
|
||||
GLUI_FileBrowser* me = list->associated_object->dynamicCastGLUI_FileBrowser();
|
||||
if (!me)
|
||||
return;
|
||||
int this_item;
|
||||
const char *selected;
|
||||
this_item = list->get_current_item();
|
||||
if (this_item > 0) { /* file or directory selected */
|
||||
selected = list->get_item_ptr( this_item )->text.c_str();
|
||||
if (selected[0] == '/' || selected[0] == '\\') {
|
||||
if (me->allow_change_dir) {
|
||||
#ifdef __GNUC__
|
||||
chdir(selected+1);
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
SetCurrentDirectory(selected+1);
|
||||
#endif
|
||||
me->fbreaddir(".");
|
||||
}
|
||||
} else {
|
||||
me->file = selected;
|
||||
me->execute_callback();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void GLUI_FileBrowser::fbreaddir(const char *d) {
|
||||
GLUI_String item;
|
||||
int i = 0;
|
||||
|
||||
if (!d)
|
||||
return;
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
WIN32_FIND_DATA FN;
|
||||
HANDLE hFind;
|
||||
//char search_arg[MAX_PATH], new_file_path[MAX_PATH];
|
||||
//sprintf(search_arg, "%s\\*.*", path_name);
|
||||
|
||||
hFind = FindFirstFile("*.*", &FN);
|
||||
if (list) {
|
||||
list->delete_all();
|
||||
if (hFind != INVALID_HANDLE_VALUE) {
|
||||
do {
|
||||
int len = int(strlen(FN.cFileName));
|
||||
if (FN.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||
item = '\\';
|
||||
item += FN.cFileName;
|
||||
} else {
|
||||
item = FN.cFileName;
|
||||
}
|
||||
list->add_item(i,item.c_str());
|
||||
i++;
|
||||
} while (FindNextFile(hFind, &FN) != 0);
|
||||
|
||||
if (GetLastError() == ERROR_NO_MORE_FILES)
|
||||
FindClose(&FN);
|
||||
else
|
||||
perror("fbreaddir");
|
||||
}
|
||||
}
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
|
||||
DIR *dir;
|
||||
struct dirent *dirp;
|
||||
struct stat dr;
|
||||
|
||||
if (list) {
|
||||
list->delete_all();
|
||||
if ((dir = opendir(d)) == NULL)
|
||||
perror("fbreaddir:");
|
||||
else {
|
||||
while ((dirp = readdir(dir)) != NULL) /* open directory */
|
||||
{
|
||||
if (!lstat(dirp->d_name,&dr) && S_ISDIR(dr.st_mode)) /* dir is directory */
|
||||
item = dirp->d_name + GLUI_String("/");
|
||||
else
|
||||
item = dirp->d_name;
|
||||
|
||||
list->add_item(i,item.c_str());
|
||||
i++;
|
||||
}
|
||||
closedir(dir);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void ProcessFiles(const char *path_name)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void GLUI_FileBrowser::set_w(int w)
|
||||
{
|
||||
if (list) list->set_w(w);
|
||||
}
|
||||
|
||||
void GLUI_FileBrowser::set_h(int h)
|
||||
{
|
||||
if (list) list->set_h(h);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user