Changed default id #50

Merged
asmeron merged 4 commits from YanTheKaller/libublsettings-gtk3:master into master 4 months ago

@ -1,6 +1,6 @@
#include "libublsettings-gtk3.h"
static render_data render;
static render_data render = {};
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path)
{
@ -24,6 +24,30 @@ int yon_ubl_status_box_setup(GtkWidget *icon, GtkWidget *box, GtkWidget *label)
} else return 0;
}
int yon_status_box_is_set(){
if (render.box){
return 1;
}
return 0;
}
GMutex _render_block_mutex;
gboolean _render_blocked=0;
void *_yon_ubl_status_box_block_input(int*seconds){
g_mutex_lock(&_render_block_mutex);
_render_blocked = 1;
g_mutex_unlock(&_render_block_mutex);
sleep(*seconds);
g_mutex_lock(&_render_block_mutex);
_render_blocked = 0;
g_mutex_unlock(&_render_block_mutex);
}
void yon_ubl_status_box_block_input(int seconds){
g_thread_new("block_thread",(GThreadFunc)_yon_ubl_status_box_block_input,&seconds);
}
void yon_ubl_status_box_set(BACKGROUND_IMAGE_TYPE type, GtkWidget *box, GtkImage *icon){
GtkIconTheme *ictheme = gtk_icon_theme_get_default();
@ -61,6 +85,10 @@ void _yon_ubl_status_box_render(char *text, BACKGROUND_IMAGE_TYPE type)
}
void yon_ubl_status_box_render(char *text, BACKGROUND_IMAGE_TYPE type){
g_mutex_lock(&_render_block_mutex);
int blocked = _render_blocked;
g_mutex_unlock(&_render_block_mutex);
if (blocked) return;
_yon_ubl_status_box_render(text,type);
}
@ -81,6 +109,10 @@ gboolean _yon_ubl_status_box_render_thread(struct __yon_ubl_status_box_render_th
}
void yon_ubl_status_box_render_thread(char *text, BACKGROUND_IMAGE_TYPE type){
g_mutex_lock(&_render_block_mutex);
int blocked = _render_blocked;
g_mutex_unlock(&_render_block_mutex);
if (blocked) return;
struct __yon_ubl_status_box_render_thread_struct *data = malloc(sizeof(struct __yon_ubl_status_box_render_thread_struct));
data->text=yon_char_new(text);
data->type=type;
@ -199,6 +231,10 @@ void yon_status_box_destroyed(){
}
int yon_ubl_status_box_spawn_infinite(GtkContainer *container, char *status_id, char *display_text, BACKGROUND_IMAGE_TYPE type){
g_mutex_lock(&_render_block_mutex);
int blocked = _render_blocked;
g_mutex_unlock(&_render_block_mutex);
if (blocked) return 0;
// if (!gtk_container_get_children(container)){
if (yon_status_thread_id){
if (!strcmp(yon_status_thread_id,status_id)){
@ -286,6 +322,10 @@ int yon_ubl_status_box_despawn_infinite(GtkContainer *container){
}
void yon_ubl_status_box_spawn(GtkContainer *container,char *display_text, int timeout,BACKGROUND_IMAGE_TYPE type){
g_mutex_lock(&_render_block_mutex);
int blocked = _render_blocked;
g_mutex_unlock(&_render_block_mutex);
if (blocked) return;
if (!gtk_container_get_children(container)){
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
GtkWidget *revealer = gtk_revealer_new();

@ -46,9 +46,10 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL);
vte_terminal_set_pty(VTE_TERMINAL(terminal),pty);
char *install_command=yon_char_unite("clear;tput cup 0 0 && tput ed && ",command," ; stty -echo; unset PS1;exit 0; exit 0","\n",NULL);
char *install_command=yon_char_unite("tput reset; tput cup 0 0; tput ed; ",command,"; STATUS=$?; stty -echo; unset PS1; exit ${STATUS}","\n",NULL);
if(endwork_function)
g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(endwork_function), endwork_function_argument);
printf("%s\n",install_command);
vte_terminal_spawn_async(VTE_TERMINAL(terminal),
VTE_PTY_DEFAULT,
NULL,
@ -203,6 +204,13 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
val-=2;
if (val<lower) val=lower;
break;
case GDK_SCROLL_SMOOTH:{
gdouble y;
gdk_event_get_scroll_deltas((GdkEvent*)event,NULL,&y);
val +=y;
if (val<lower) val=lower;
if (val>upper) val=upper;
}
default:
}
gtk_adjustment_set_value(adjustment,val);

@ -219,6 +219,27 @@ char *yon_packages_get_description(enum YON_PACKAGES_DB_TYPE type, const char *p
}
}
config_str yon_packages_get_depends(enum YON_PACKAGES_DB_TYPE type, const char *package, int *size){
(*size)=0;
if (yon_char_is_empty(package)) return NULL;
config_str depends = NULL;
alpm_list_t *databases = _yon_packages_get_db_list(type);
alpm_list_t *iter = NULL, *pkg_iter = NULL;
for (iter = databases; iter; iter=iter->next){
alpm_pkg_t *pkg = alpm_db_get_pkg(iter->data,package);
if (!pkg) continue;
alpm_list_t *list = alpm_pkg_compute_requiredby(pkg);
for (pkg_iter = list; pkg_iter; pkg_iter=pkg_iter->next){
yon_char_parsed_add_or_create_if_exists(depends,size,pkg_iter->data);
}
break;
}
return depends;
}
void yon_packages_update(){
if (packages_struct.packages_handle) alpm_release(packages_struct.packages_handle);
_yon_packages_get_db();
@ -287,7 +308,7 @@ struct yon_combo_default_struct {
};
void _yon_combo_box_set_default_value(struct yon_combo_default_struct *target){
gtk_combo_box_text_prepend(target->target,target->command_value,target->default_value);
gtk_combo_box_text_prepend(target->target," ",target->default_value);
if (!yon_char_is_empty(target->default_value)) free(target->command);
if (!yon_char_is_empty(target->default_value)) free(target->command_value);
}

@ -359,6 +359,8 @@ typedef struct {
*/
int yon_ubl_status_box_setup(GtkWidget *icon, GtkWidget *box, GtkWidget *label);
int yon_status_box_is_set();
/**yon_ubl_status_box_render(render,text,type)
* [EN]
* Renders message in status box;
@ -376,6 +378,8 @@ int yon_ubl_status_box_setup(GtkWidget *icon, GtkWidget *box, GtkWidget *label);
*/
void yon_ubl_status_box_render(char *text, BACKGROUND_IMAGE_TYPE type);
void yon_ubl_status_box_block_input(int seconds);
/**yon_ubl_status_box_render_thread(render,text,type)
* [EN]
* Renders message in status box. It is safe to use outside of interface thread.
@ -597,6 +601,8 @@ config_str yon_packages_find(enum YON_PACKAGES_DB_TYPE type, const char *search_
char *yon_packages_get_version(enum YON_PACKAGES_DB_TYPE type, const char *package);
char *yon_packages_get_description(enum YON_PACKAGES_DB_TYPE type, const char *package);
config_str yon_packages_get_depends(enum YON_PACKAGES_DB_TYPE type, const char *package, int *size);
void yon_combo_box_set_default(GtkComboBoxText *target, char *command, char*(result_callback)(char*));
int yon_ip_mask_get_bits(char *mask);

Loading…
Cancel
Save