int ompi_win_allocate_shared(size_t size, int disp_unit, opal_info_t *info, ompi_communicator_t *comm, void *baseptr, ompi_win_t **newwin) { ompi_win_t *win; int model; int ret; void *base; ret = alloc_window (comm, info, MPI_WIN_FLAVOR_SHARED, &win); if (OMPI_SUCCESS != ret) { return ret; } ret = ompi_osc_base_select(win, &base, size, disp_unit, comm, info, MPI_WIN_FLAVOR_SHARED, &model); if (OMPI_SUCCESS != ret) { OBJ_RELEASE(win); return ret; } ret = config_window(base, size, disp_unit, MPI_WIN_FLAVOR_SHARED, model, win); if (OMPI_SUCCESS != ret) { OBJ_RELEASE(win); return ret; } *((void**) baseptr) = base; *newwin = win; return OMPI_SUCCESS; }
int ompi_win_create_dynamic(opal_info_t *info, ompi_communicator_t *comm, ompi_win_t **newwin) { ompi_win_t *win; int model; int ret; ret = alloc_window (comm, info, MPI_WIN_FLAVOR_DYNAMIC, &win); if (OMPI_SUCCESS != ret) { return ret; } ret = ompi_osc_base_select(win, MPI_BOTTOM, 0, 1, comm, info, MPI_WIN_FLAVOR_DYNAMIC, &model); if (OMPI_SUCCESS != ret) { OBJ_RELEASE(win); return ret; } ret = config_window(MPI_BOTTOM, 0, 1, MPI_WIN_FLAVOR_DYNAMIC, model, win); if (OMPI_SUCCESS != ret) { OBJ_RELEASE(win); return ret; } *newwin = win; return OMPI_SUCCESS; }
int ompi_win_create(void *base, size_t size, int disp_unit, ompi_communicator_t *comm, opal_info_t *info, ompi_win_t** newwin) { ompi_win_t *win; int model; int ret; ret = alloc_window (comm, info, MPI_WIN_FLAVOR_CREATE, &win); if (OMPI_SUCCESS != ret) { return ret; } ret = ompi_osc_base_select(win, &base, size, disp_unit, comm, info, MPI_WIN_FLAVOR_CREATE, &model); if (OMPI_SUCCESS != ret) { OBJ_RELEASE(win); return ret; } ret = config_window(base, size, disp_unit, MPI_WIN_FLAVOR_CREATE, model, win); if (OMPI_SUCCESS != ret) { OBJ_RELEASE(win); return ret; } *newwin = win; return OMPI_SUCCESS; }
static int config(struct vo *vo, uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, uint32_t format) { struct gl_priv *p = vo->priv; mpgl_lock(p->glctx); if (!config_window(p, d_width, d_height, flags)) { mpgl_unlock(p->glctx); return -1; } if (p->glctx->register_resize_callback) { p->glctx->register_resize_callback(vo, video_resize_redraw_callback); } gl_video_config(p->renderer, format, width, height, p->vo->aspdat.prew, p->vo->aspdat.preh); p->vo_flipped = !!(flags & VOFLAG_FLIPPING); resize(p); mpgl_unlock(p->glctx); return 0; }
int ompi_win_allocate(size_t size, int disp_unit, ompi_info_t *info, ompi_communicator_t *comm, void *baseptr, ompi_win_t **newwin) { ompi_win_t *win; int model; int ret; void *base; win = alloc_window(comm); if (NULL == win) return OMPI_ERR_OUT_OF_RESOURCE; ret = ompi_osc_base_select(win, &base, size, disp_unit, comm, info, MPI_WIN_FLAVOR_ALLOCATE, &model); if (OMPI_SUCCESS != ret) { OBJ_RELEASE(win); return ret; } ret = config_window(base, size, disp_unit, MPI_WIN_FLAVOR_ALLOCATE, model, win); if (OMPI_SUCCESS != ret) { OBJ_RELEASE(win); return ret; } *((void**) baseptr) = base; *newwin = win; return OMPI_SUCCESS; }
static int preinit(struct vo *vo, const char *arg) { struct gl_priv *p = vo->priv; p->vo = vo; p->glctx = mpgl_init(vo, p->backend); if (!p->glctx) goto err_out; p->gl = p->glctx->gl; if (!config_window(p, 320, 200, VOFLAG_HIDDEN)) goto err_out; mpgl_set_context(p->glctx); if (p->gl->SwapInterval) p->gl->SwapInterval(p->swap_interval); p->renderer = gl_video_init(p->gl); gl_video_set_output_depth(p->renderer, p->glctx->depth_r, p->glctx->depth_g, p->glctx->depth_b); gl_video_set_options(p->renderer, p->renderer_opts); if (p->icc_opts->profile) { struct lut3d *lut3d = mp_load_icc(p->icc_opts); if (!lut3d) goto err_out; gl_video_set_lut3d(p->renderer, lut3d); talloc_free(lut3d); } mpgl_unset_context(p->glctx); return 0; err_out: uninit(vo); return -1; }
int main (int argc,char *argv[]) { Persona p; Familia f; open_file(&p,&f); make_tree(&f); set_position(&f); GtkWidget *window; GtkWidget *paned_container_horizontal; GtkWidget *paned_container_vertical; GtkWidget *fixed_container; GtkWidget *list_container; GtkWidget *drawing_area; GtkWidget *scroll_draw_zone; GtkWidget *scroll_tree_zone; GtkWidget *scroll_list_zone; GtkWidget *memberTextArea; GtkWidget *tree_box; GtkWidget *list_box; gtk_init (&argc, &argv); // Configuracion de Ventana main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); window = main_window; config_window(GTK_WINDOW(window),WIDTH,HEIGHT,"Arbol Genealogico",TRUE); // Configuracion de ventana que muestra los datos de las familias // Configuracion de Container paned_container_horizontal = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); paned_container_vertical = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_set_border_width (GTK_CONTAINER (window), 0); gtk_container_add (GTK_CONTAINER (window), paned_container_horizontal); fixed_container = gtk_fixed_new(); list_container = gtk_fixed_new(); drawing_area = gtk_drawing_area_new(); gtk_widget_set_size_request (GTK_WIDGET(drawing_area), 2000, 2000); scroll_draw_zone = gtk_scrolled_window_new(NULL, NULL); scroll_list_zone = gtk_scrolled_window_new(NULL, NULL); scroll_tree_zone = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW(scroll_draw_zone),800); gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW(scroll_draw_zone),600 - 50); gtk_fixed_put(GTK_FIXED(fixed_container), GTK_WIDGET(scroll_draw_zone), 0, 20); gtk_fixed_put(GTK_FIXED(list_container), GTK_WIDGET(scroll_draw_zone), 0, 0); // Se configura la caja que contiene a las familias tree_box = setup_tree("FAMILIAS"); add_family_to_list(tree_box,&f); // Se configura la caja que muestr a las personas list_box = setup_tree("PERSONAS"); add_member_to_list(list_box,&p); gtk_container_add(GTK_CONTAINER(scroll_draw_zone), GTK_WIDGET(drawing_area)); gtk_container_add(GTK_CONTAINER(scroll_tree_zone), GTK_WIDGET(tree_box)); gtk_container_add(GTK_CONTAINER(scroll_list_zone), GTK_WIDGET(list_box)); // Se agregan los elementos a la ventana gtk_paned_add1(GTK_PANED(paned_container_vertical),scroll_tree_zone); gtk_paned_add2(GTK_PANED(paned_container_vertical),scroll_list_zone); gtk_paned_add1(GTK_PANED(paned_container_horizontal),paned_container_vertical); gtk_paned_add2(GTK_PANED(paned_container_horizontal),fixed_container); // se conecta la senial "destroy" con la funcion gtk_main_quit g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(drawing_area), "draw", G_CALLBACK(draw_tree), &f); g_signal_connect(G_OBJECT(tree_box), "row-activated", G_CALLBACK(show_family_info),GTK_WINDOW(window)); g_signal_connect(G_OBJECT(list_box), "row-activated", G_CALLBACK(show_member_info),NULL); // los widget GTK estan escondidos por defecto, con esto los volvemos visibles gtk_widget_show_all (window); gtk_main (); return 0; }