#include <iconv.h>
#include <sys/ipc.h>
#include <sys/shm.h>
+#if defined(__FreeBSD__)
+#include <sys/sysctl.h>
+#endif
#include <X11/extensions/XShm.h>
#include <fontconfig/fontconfig.h>
#include <fontconfig/fcfreetype.h>
int BC_Resources::get_machine_cpus()
{
+#if !defined(__FreeBSD__)
int cpus = 1;
FILE *proc = fopen("/proc/cpuinfo", "r");
if( proc ) {
fclose(proc);
}
return cpus;
+#else
+ int mib[2], ncpu;
+ size_t len = sizeof(ncpu);
+ mib[0] = CTL_HW;
+ mib[1] = HW_NCPU;
+ if( sysctl(mib, 2, &ncpu, &len, 0, 0) ) ncpu = 1;
+ return ncpu;
+#endif
}
void BC_Resources::new_vframes(int n, VFrame *vframes[], ...)
VFrame *BC_Resources::default_hscroll_data[10] = { 0, };
VFrame *BC_Resources::default_icon_img = 0;
-BC_Resources::BC_Resources()
+BC_Resources::BC_Resources(float x_scale, float y_scale)
{
+ BC_WindowBase::resources = this;
synchronous = 0;
vframe_shm = 0;
- double default_scale = 1.0; // display_size/1000.;
- char *env = getenv("BC_FONT_DEBUG");
+#if !defined(__FreeBSD__)
+ use_shm = -1;
+ shm_reply = 1;
+#else
+ use_shm = 0;
+ shm_reply = 0;
+#endif
+ if( x_scale <= 0 ) x_scale = 1;
+ if( y_scale <= 0 ) y_scale = x_scale;
+ this->x_scale = x_scale;
+ this->y_scale = y_scale;
+ float default_scale = bmin(x_scale, y_scale);
+ const char *env = getenv("BC_FONT_DEBUG");
font_debug = env ? atoi(env) : 0;
env = getenv("BC_FONT_SCALE");
font_scale = env ? atof(env) : default_scale;
listbox_title_overlap = 0;
listbox_title_margin = 0;
listbox_title_color = BLACK;
- listbox_title_hotspot = 5;
+ listbox_title_hotspot = xS(5);
listbox_border1 = DKGREY;
listbox_border2_hi = RED;
pan_data = 0;
pan_text_color = YELLOW;
- generic_button_margin = 15;
+ generic_button_margin = xS(15);
draw_clock_background=1;
- use_shm = -1;
- shm_reply = 1;
-
// Initialize
bg_color = ORANGE;
bg_shadow1 = DKGREY;
button_uphighlighted = RED; // upper side when highlighted
tumble_data = 0;
+ tumblepatch_data = 0;
tumble_duration = 150;
ok_images = default_ok_images;
popupmenu_images = 0;
- popupmenu_margin = 10;
+ popupmenu_margin = xS(10);
popupmenu_btnup = 1;
- popupmenu_triangle_margin = 10;
+ popupmenu_triangle_margin = xS(10);
min_menu_w = 0;
menu_title_text = BLACK;
tooltips_enabled = 1;
textbox_focus_policy = 0;
- filebox_margin = 110;
- dirbox_margin = 90;
+ filebox_margin = yS(110);
+ dirbox_margin = yS(90);
filebox_mode = LISTBOX_TEXT;
sprintf(filebox_filter, "*");
- filebox_w = 640;
- filebox_h = 480;
+ filebox_w = xS(640);
+ filebox_h = yS(480);
filebox_columntype[0] = FILEBOX_NAME;
filebox_columntype[1] = FILEBOX_SIZE;
filebox_columntype[2] = FILEBOX_DATE;
filebox_columntype[3] = FILEBOX_EXTENSION;
- filebox_columnwidth[0] = 200;
- filebox_columnwidth[1] = 100;
- filebox_columnwidth[2] = 100;
- filebox_columnwidth[3] = 100;
+ filebox_columnwidth[0] = xS(300);
+ filebox_columnwidth[1] = xS(100);
+ filebox_columnwidth[2] = xS(150);
+ filebox_columnwidth[3] = xS(49);
dirbox_columntype[0] = FILEBOX_NAME;
dirbox_columntype[1] = FILEBOX_DATE;
- dirbox_columnwidth[0] = 200;
- dirbox_columnwidth[1] = 100;
+ dirbox_columnwidth[0] = xS(400);
+ dirbox_columnwidth[1] = xS(199);
filebox_text_images = default_filebox_text_images;
filebox_icons_images = default_filebox_icons_images;
pot_images = default_pot_images;
pot_offset = 2;
- pot_x1 = pot_images[0]->get_w() / 2 - pot_offset;
- pot_y1 = pot_images[0]->get_h() / 2 - pot_offset;
+ pot_x1 = pot_images[0]->get_w() / 2 - xS(pot_offset);
+ pot_y1 = pot_images[0]->get_h() / 2 - yS(pot_offset);
pot_r = pot_x1;
pot_needle_color = BLACK;
ymeter_images = 0;
meter_font = SMALLFONT_3D;
meter_font_color = RED;
- meter_title_w = 20;
+ meter_title_w = xS(20);
meter_3d = 1;
medium_7segment = default_medium_7segment;
use_xft = 0;
#endif
-
- drag_radius = 10;
+ drag_radius = xS(10);
recursive_resizing = 1;
-
-
}
void BC_Resources::del_vframes(VFrame *vframes[], int n)
del_vframes(default_pot_images, 3);
del_vframes(default_progress_images, 2);
del_vframes(default_medium_7segment, 20);
+ del_vframes(default_vscroll_data, 10);
+ del_vframes(default_hscroll_data, 10);
if( fontlist ) {
fontlist->remove_all_objects();
delete fontlist;
{
if(BC_Resources::locale_utf8) return;
char lbuf[buflen];
- encode(encoding, 0, buffer, buflen, lbuf, buflen);
+ encode(encoding, 0, buffer, -1, lbuf, buflen);
strcpy(buffer, lbuf);
}