예제 #1
0
파일: transfer.c 프로젝트: GNOME/gftp
void
remove_file_transfer (gpointer data)
{
  gftpui_common_curtrans_data * transdata;
  GtkCTreeNode * node;
  gftp_file * curfle;

  if (GTK_CLIST (dlwdw)->selection == NULL)
    {
      ftp_log (gftp_logging_error, NULL,
              _("There are no file transfers selected\n"));
      return;
    }

  node = GTK_CLIST (dlwdw)->selection->data;
  transdata = gtk_ctree_node_get_row_data (GTK_CTREE (dlwdw), node);

  if (transdata->curfle == NULL || transdata->curfle->data == NULL)
    return;

  curfle = transdata->curfle->data;
  gftpui_common_skip_file_transfer (transdata->transfer, curfle);

  gtk_ctree_node_set_text (GTK_CTREE (dlwdw), curfle->user_data, 1,
                           _("Skipped"));
}
예제 #2
0
파일: xqf-ui.c 프로젝트: IR4T4/xqf
void source_ctree_add_master (GtkWidget *ctree, struct master *m) {
	GtkCTreeNode *node;
	GtkCTreeNode *parent = NULL;
	struct master *group = NULL;

	if (m->isgroup)
		return;

	// If set to display only configured games, and game is not configured,
	// and it's not the 'Favorites' master, just return so the display
	// isn't updated with the game type and masters.
	if (!(games[m->type].cmd) && default_show_only_configured_games && m != favorites)
		return;

	if (m->type != UNKNOWN_SERVER) {
		group = (struct master *) g_slist_nth_data (master_groups, m->type);
		source_ctree_enable_master_group (ctree, group, TRUE);
	}

	node = gtk_ctree_find_by_row_data (GTK_CTREE (ctree), NULL, m);

	if (!node) {
		if (group) {
			parent = gtk_ctree_find_by_row_data (GTK_CTREE (ctree), NULL, group);
		}
		node = gtk_ctree_insert_node (GTK_CTREE (ctree), parent, NULL, NULL, 4, NULL, NULL, NULL, NULL, TRUE, FALSE);
		gtk_ctree_node_set_row_data (GTK_CTREE (ctree), node, m);
	}
	source_ctree_show_node_status (ctree, m);
}
예제 #3
0
static void ssl_manager_delete_cb(GtkWidget *widget, 
			      gpointer data) 
{
	SSLCertificate *cert;
	GList *rowlist;
	int val;
	
	rowlist = GTK_CLIST(manager.certlist)->selection;
	if (!rowlist) 
		return;
	
	cert = gtk_ctree_node_get_row_data
			(GTK_CTREE(manager.certlist),
			 GTK_CTREE_NODE(rowlist->data));
	
	if (!cert)
		return;
	val = alertpanel(_("Delete certificate"), 
			     _("Do you really want to delete this certificate?"),
			     _("Yes"), _("+No"), NULL);
	if (val != G_ALERTDEFAULT)
		return;
	
	ssl_certificate_delete_from_disk(cert);
	ssl_certificate_destroy(cert);
	gtk_ctree_remove_node(GTK_CTREE(manager.certlist), GTK_CTREE_NODE(rowlist->data));
}
예제 #4
0
파일: dirtree.c 프로젝트: gentoo/pornview
void
dirtree_refresh_node (DirTree * dt, GtkCTreeNode * node)
{
    DirTreeNode *dirnode = NULL;
    gint    has_subdirs;
    gboolean expanded;

    dirnode = gtk_ctree_node_get_row_data (GTK_CTREE (dt), node);

    has_subdirs = tree_is_subdirs (dirnode->path, dt->show_dotfile);

    if (has_subdirs && GTK_CTREE_ROW (node)->expanded == 1)
	expanded = TRUE;
    else
	expanded = FALSE;

    if (has_subdirs)
	gtk_ctree_set_node_info (GTK_CTREE (dt), node,
				 g_basename (dirnode->path), CTREE_SPACING,
				 folder_pixmap, folder_mask, ofolder_pixmap,
				 ofolder_mask, FALSE, expanded);
    else
	gtk_ctree_set_node_info (GTK_CTREE (dt), node,
				 g_basename (dirnode->path), CTREE_SPACING,
				 folder_pixmap, folder_mask, ofolder_pixmap,
				 ofolder_mask, TRUE, expanded);
}
예제 #5
0
파일: xqf-ui.c 프로젝트: IR4T4/xqf
static void fill_source_ctree (GtkWidget *ctree) {
	GSList *list;
	GSList *list2;
	GtkCTreeNode *node;
	GtkCTreeNode *parent;
	struct master *group;
	struct master *m;

	source_ctree_add_master (ctree, favorites);

	for (list = master_groups; list; list = list->next) {
		group = (struct master *) list->data;
		if (group->masters) {
			// If set to display only configured games, and game is not configured,
			// don't update the display with the master.
			if (games[group->type].cmd || !default_show_only_configured_games) {
				source_ctree_enable_master_group (ctree, group, FALSE);
				parent = gtk_ctree_find_by_row_data (GTK_CTREE (ctree), NULL, group);

				for (list2 = group->masters; list2; list2 = list2->next) {
					m = (struct master *) list2->data;
					node = gtk_ctree_insert_node (GTK_CTREE (ctree), parent, NULL, NULL, 4, NULL, NULL, NULL, NULL, TRUE, FALSE);
					gtk_ctree_node_set_row_data (GTK_CTREE (ctree), node, m);
					source_ctree_show_node_status (ctree, m);
				}
			}
		}
	}
}
예제 #6
0
파일: gtkui_transfer.c 프로젝트: GNOME/gftp
void
gftpui_add_file_to_transfer (gftp_transfer * tdata, GList * curfle)
{
  gftpui_common_curtrans_data * transdata;
  char *text[2];
  gftp_file * fle;

  fle = curfle->data;
  text[0] = gftpui_gtk_get_utf8_file_pos (fle);

  if (fle->transfer_action == GFTP_TRANS_ACTION_SKIP)
    text[1] = _("Skipped");
  else
    text[1] = _("Waiting...");

  fle->user_data = gtk_ctree_insert_node (GTK_CTREE (dlwdw),
                                          tdata->user_data, NULL, text, 5,
                                          NULL, NULL, NULL, NULL,
                                          FALSE, FALSE);
  transdata = g_malloc0 (sizeof (*transdata));
  transdata->transfer = tdata;
  transdata->curfle = curfle;

  gtk_ctree_node_set_row_data (GTK_CTREE (dlwdw), fle->user_data, transdata);
}
예제 #7
0
/*
 * Popup Menu Handler.
 * Expand or Collapse the whole hierarchical tree.
 */
static void
gdisp_popupMenuHandler ( Kernel_T    *kernel,
			 PopupMenu_T *menu,
			 gpointer     menuData, /* cTree */
			 gpointer     itemData )
{

  GtkWidget *cTree  = (GtkWidget*)menuData;
  guint      action = GPOINTER_TO_UINT(itemData);

  /*
   * itemData : 0-collapse, 1-expand
   */
  if (action == 1 /* expand */) {

    gtk_ctree_expand_recursive(GTK_CTREE(cTree),
			       (GtkCTreeNode*)NULL);

  }
  else {

    gtk_ctree_collapse_recursive(GTK_CTREE(cTree),
				 (GtkCTreeNode*)NULL);

  }

}
예제 #8
0
static void icon_selected (MimeView *mimeview, gint num, MimeInfo *partinfo)
{
	GtkCTreeNode *node;
	node = gtk_ctree_find_by_row_data(GTK_CTREE(mimeview->ctree), NULL, partinfo);
	if (node)
		gtk_ctree_select(GTK_CTREE(mimeview->ctree), node);
}		
예제 #9
0
파일: xqf-ui.c 프로젝트: IR4T4/xqf
GtkWidget *create_cwidget (GtkWidget *scrollwin, struct clist_def *cldef) {
	GtkWidget *alignment;
	GtkWidget *label;
	GtkWidget *clist;
	char buf[256];
	int i;

	switch (cldef->type) {
		case CWIDGET_CLIST:
			clist = gtk_clist_new (cldef->columns);
			break;

		case CWIDGET_CTREE:
			clist = gtk_ctree_new (cldef->columns, 0);
			gtk_ctree_set_line_style (GTK_CTREE (clist), GTK_CTREE_LINES_NONE);
			gtk_ctree_set_expander_style (GTK_CTREE (clist), GTK_CTREE_EXPANDER_TRIANGLE);
			gtk_ctree_set_indent (GTK_CTREE (clist), 10);
			break;

		default:
			return NULL;
	}

	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

	GTK_CLIST_SET_FLAG (GTK_CLIST (clist), CLIST_SHOW_TITLES);
	gtk_container_add (GTK_CONTAINER (scrollwin), clist);

	gtk_clist_set_selection_mode (GTK_CLIST (clist), cldef->mode);

	for (i = 0; i < cldef->columns; i++) {
		g_snprintf (buf, 256, "/" CONFIG_FILE "/%s Geometry/%s=%d",
				cldef->name, cldef->cols[i].name, cldef->cols[i].width);
		gtk_clist_set_column_width (GTK_CLIST (clist), i, config_get_int (buf));
		if (cldef->cols[i].justify != GTK_JUSTIFY_LEFT) {
			gtk_clist_set_column_justification (GTK_CLIST (clist), i, cldef->cols[i].justify);
		}

		alignment = gtk_alignment_new (0.0, 0.5, 0.0, 0.0);

		label = gtk_label_new (_(cldef->cols[i].name));
		gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
		gtk_container_add (GTK_CONTAINER (alignment), label);
		gtk_widget_show (label);

		cldef->cols[i].widget = label;

		gtk_clist_set_column_widget (GTK_CLIST (clist), i, alignment);
		gtk_widget_show (alignment);
	}

	gtk_clist_set_sort_column (GTK_CLIST (clist), cldef->sort_column);
	gtk_clist_set_sort_type (GTK_CLIST (clist), cldef->sort_type);

	clist_column_set_title (GTK_CLIST (clist), cldef, TRUE);

	return clist;
}
예제 #10
0
파일: transfer.c 프로젝트: GNOME/gftp
void
move_transfer_down (gpointer data)
{
  GList * firstentry, * secentry, * lastentry;
  gftpui_common_curtrans_data * transdata;
  GtkCTreeNode * node;

  if (GTK_CLIST (dlwdw)->selection == NULL)
    {
      ftp_log (gftp_logging_error, NULL,
	      _("There are no file transfers selected\n"));
      return;
    }
  node = GTK_CLIST (dlwdw)->selection->data;
  transdata = gtk_ctree_node_get_row_data (GTK_CTREE (dlwdw), node);

  if (transdata->curfle == NULL)
    return;

  g_static_mutex_lock (&transdata->transfer->structmutex);
  if (transdata->curfle->next != NULL && (!transdata->transfer->started ||
      (transdata->transfer->curfle != transdata->curfle && 
       transdata->transfer->curfle != transdata->curfle->next)))
    {
      if (transdata->curfle->prev == NULL)
        {
          firstentry = transdata->curfle->next;
          lastentry = transdata->curfle->next->next;
          transdata->transfer->files = firstentry;
          transdata->transfer->files->prev = NULL;
          transdata->transfer->files->next = transdata->curfle;
          transdata->curfle->prev = transdata->transfer->files;
          transdata->curfle->next = lastentry;
          if (lastentry != NULL)
            lastentry->prev = transdata->curfle;
        }
      else
        {
          firstentry = transdata->curfle->prev;
          secentry = transdata->curfle->next;
          lastentry = transdata->curfle->next->next;
          firstentry->next = secentry;
          secentry->prev = firstentry;
          secentry->next = transdata->curfle;
          transdata->curfle->prev = secentry;
          transdata->curfle->next = lastentry;
          if (lastentry != NULL)
            lastentry->prev = transdata->curfle;
        }

      gtk_ctree_move (GTK_CTREE (dlwdw), 
                      ((gftp_file *) transdata->curfle->data)->user_data,
                      transdata->transfer->user_data, 
                      transdata->curfle->next != NULL ?
                          ((gftp_file *) transdata->curfle->next->data)->user_data: NULL);
    }
  g_static_mutex_unlock (&transdata->transfer->structmutex);
}
예제 #11
0
파일: xqf-ui.c 프로젝트: IR4T4/xqf
//static void source_ctree_remove_master_group (GtkWidget *ctree,
void source_ctree_remove_master_group (GtkWidget *ctree, struct master *m) {
	GtkCTreeNode *node;

	if (!m->isgroup)
		return;

	node = gtk_ctree_find_by_row_data (GTK_CTREE (ctree), NULL, m);
	if (node) {
		gtk_ctree_remove_node (GTK_CTREE (ctree), node);
	}
}
예제 #12
0
static void plCTRow(GtkWidget * widget, gint row, gint column, GdkEventButton * bevent, gpointer data)
{
 DirNodeType  * DirNode;
 GtkCTreeNode * node;
 node=gtk_ctree_node_nth( GTK_CTREE( widget ),row );
 DirNode=gtk_ctree_node_get_row_data( GTK_CTREE( widget ),node );
 current_path=DirNode->path;
 gtk_ctree_expand( GTK_CTREE( widget ),node );
 scan_dir( DirNode->path );
 if ( CLFileSelected ) free( CLFileSelected ); CLFileSelected=calloc( 1,NrOfEntrys * sizeof( int ) );
}
예제 #13
0
파일: extra.c 프로젝트: erikg/GEMS
int
putmail (GtkWidget * widget)
{
    synopsis *s;
    GtkCTreeNode *n;
    GtkWidget *from, *subj, *date, *recipt, *body;
    char *shtuff;

    if (widget != NULL)
      {
	  n = gtk_ctree_node_nth (GTK_CTREE (widget),
				  (&(GTK_CTREE (widget)->clist))->focus_row);
	  s = (synopsis *) gtk_ctree_node_get_row_data (GTK_CTREE (widget),
							n);
	  if (s)
	      shtuff = (char *) db_read_body (s->id);
	  else
	    {
		printf ("synopsis for row %d is NULL!\n", (&(GTK_CTREE (widget)->clist))->focus_row);
		return FALSE;
	    }
      }
    else
      {
	  s = (synopsis *) malloc (sizeof (synopsis));
	  s->sender = strdup (" ");
	  s->subject = strdup (" ");
	  s->date = strdup (" ");
	  s->sender = strdup (" ");
	  shtuff = strdup (" ");
      }
    from = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "entry1");
    date = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "entry2");
    subj = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "entry3");
    recipt = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "entry4");
    body = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (gems), "text1");

    gtk_entry_set_text (GTK_ENTRY (from), s->sender);
    gtk_entry_set_text (GTK_ENTRY (subj), s->subject);
    gtk_entry_set_text (GTK_ENTRY (date), s->date);
    gtk_text_freeze (GTK_TEXT (body));
    gtk_text_set_point (GTK_TEXT (body), 0);
    gtk_text_forward_delete (GTK_TEXT (body),
			     gtk_text_get_length (GTK_TEXT (body)));
    gtk_text_insert (GTK_TEXT (body), NULL, NULL, NULL, shtuff, -1);
    gtk_text_thaw (GTK_TEXT (body));
    if (widget == NULL)
      {
	  free (s);
	  free (shtuff);
      }
    return TRUE;
}
예제 #14
0
파일: xqf-ui.c 프로젝트: IR4T4/xqf
void source_ctree_select_source (struct master *m) {
	GtkCTreeNode *node;
	GtkVisibility vis;

	node = gtk_ctree_find_by_row_data (GTK_CTREE (source_ctree), NULL, m);
	gtk_ctree_unselect_recursive (GTK_CTREE (source_ctree), NULL);
	gtk_ctree_select (GTK_CTREE (source_ctree), node);

	vis = gtk_ctree_node_is_visible (GTK_CTREE (source_ctree), node);

	if (vis != GTK_VISIBILITY_FULL)
		gtk_ctree_node_moveto (GTK_CTREE (source_ctree), node, 0, 0.2, 0.0);
}
예제 #15
0
파일: callbacks.c 프로젝트: erikg/GEMS
void
on_toolbar_reply_clicked (GtkButton * UNUSED(button), gpointer UNUSED(user_data))
{
    synopsis *s;
    GtkCTreeNode *n;
    GtkWidget *from, *subj, *date, *recipt, *body, *comp, *widget;
    char *shtuff, buf[1024];

    if ((widget = lookup_widget (gems, "mailbox")) == NULL)
	return;
    comp = create_compose ();
    from = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry1");
    /* to = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry5"); */
    date = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry2");
    subj = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry6");
    recipt = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "entry4");
    body = (GtkWidget *) gtk_object_get_data (GTK_OBJECT (comp), "text2");

    n = gtk_ctree_node_nth (GTK_CTREE (widget),
	(&(GTK_CTREE (widget)->clist))->focus_row);
    s = (synopsis *) gtk_ctree_node_get_row_data (GTK_CTREE (widget), n);
    shtuff = replyify (s, (char *)db_read_body (s->id));

    gtk_entry_set_text (GTK_ENTRY (from), s->sender);
    /*
     * if(!strncasecmp("re: ", s->subject, 4)) 
     */
    if (tolower (s->subject[0]) == 'r' && tolower (s->subject[1]) == 'e'
	&& s->subject[2] == ':' && s->subject[3] == ' ')
	sprintf (buf, "%s", s->subject);
    else
	sprintf (buf, "Re: %s", s->subject);
    gtk_entry_set_text (GTK_ENTRY (subj), buf);
    gtk_entry_set_text (GTK_ENTRY (date), s->date);


    gtk_text_freeze (GTK_TEXT (body));
    gtk_text_set_point (GTK_TEXT (body), 0);
    gtk_text_forward_delete (GTK_TEXT (body),
	gtk_text_get_length (GTK_TEXT (body)));
    gtk_text_insert (GTK_TEXT (body), NULL, NULL, NULL, shtuff, -1);
    gtk_text_thaw (GTK_TEXT (body));
    if (widget == NULL)
    {
	free (s);
	free (shtuff);
    }
    gtk_text_set_editable (GTK_TEXT (body), TRUE);
    gtk_widget_show (comp);
    return;
}
예제 #16
0
파일: tree.c 프로젝트: GCrean/sitecopy
int add_a_site_to_the_tree(struct site *a_site, gint operation) 
{
    struct ctree_attachment *info_to_add;
    gchar *tmp, *node_label[1];
    
    tmp = getAppropriateTreeLabel(a_site);
    node_label[0] = tmp;
    
    site_item = gtk_ctree_insert_node(GTK_CTREE(the_tree), NULL, NULL, node_label,
				      0, NULL, NULL, NULL, NULL, FALSE, FALSE);
    g_free (tmp);
    
    info_to_add = malloc(sizeof(struct ctree_attachment));
    info_to_add->file_or_site = IS_A_SITE;
    info_to_add->info_struct = (void *) a_site;
    gtk_ctree_node_set_row_data(GTK_CTREE(the_tree), site_item,
				(gpointer) info_to_add);

    /* Read site info */
   if (site_readfiles(a_site) != SITE_OK)
     /* We effectively have no info file, so just read the stored state. */
     site_read_local_state(a_site);

    /* Catchup or init, if that's required */
    if (operation == 1)
      {
	  site_initialize(a_site);
	  printf("Initialised site\n");
      }
    else if (operation == 2)
      {
	  site_catchup(a_site);
	  printf("Caught-up new site.\n");
      }
/* As far as I can tell, this doesn't need to be done. 
 * Not sure why it's in here*/
    site_write_stored_state(a_site);
    
    
    if (operation != 3)
      {
	  gtk_clist_freeze(GTK_CLIST(the_tree));
	  populate_site_node(GTK_CTREE_NODE(site_item), a_site);
	  gtk_clist_thaw(GTK_CLIST(the_tree));
      }
    
    return 0;
}
예제 #17
0
static GtkCTreeNode *mimeview_append_part(MimeView *mimeview,
					  MimeInfo *partinfo,
					  GtkCTreeNode *parent)
{
	GtkCTree *ctree = GTK_CTREE(mimeview->ctree);
	GtkCTreeNode *node;
	static gchar content_type[64];
	gchar *str[N_MIMEVIEW_COLS];

	if (partinfo->type != MIMETYPE_UNKNOWN && partinfo->subtype) {
		g_snprintf(content_type, 64, "%s/%s", procmime_get_media_type_str(partinfo->type), partinfo->subtype);
	} else {
		g_snprintf(content_type, 64, "UNKNOWN");
	}

	str[COL_MIMETYPE] = content_type;
	str[COL_SIZE] = to_human_readable(partinfo->length);
	if (prefs_common.attach_desc)
		str[COL_NAME] = (gchar *) get_part_description(partinfo);
	else
		str[COL_NAME] = (gchar *) get_part_name(partinfo);

	node = gtk_ctree_insert_node(ctree, parent, NULL, str, 0,
				     NULL, NULL, NULL, NULL,
				     FALSE, TRUE);
	gtk_ctree_node_set_row_data(ctree, node, partinfo);

	return node;
}
예제 #18
0
void mimeview_show_message(MimeView *mimeview, MimeInfo *mimeinfo,
			   const gchar *file)
{
	GtkCTree *ctree = GTK_CTREE(mimeview->ctree);
	GtkCTreeNode *node;

	mimeview_clear(mimeview);

	g_return_if_fail(file != NULL);
	g_return_if_fail(mimeinfo != NULL);

	mimeview->mimeinfo = mimeinfo;

	mimeview->file = g_strdup(file);

	gtk_signal_handler_block_by_func(GTK_OBJECT(ctree), mimeview_selected,
					 mimeview);

	mimeview_set_multipart_tree(mimeview, mimeinfo, NULL);
	icon_list_create(mimeview, mimeinfo);

	gtk_signal_handler_unblock_by_func(GTK_OBJECT(ctree),
					   mimeview_selected, mimeview);

	node = GTK_CTREE_NODE(GTK_CLIST(ctree)->row_list);
	if (node) {
		gtk_ctree_select(ctree, node);
		icon_list_toggle_by_mime_info
			(mimeview, gtk_ctree_node_get_row_data(ctree, node));
		gtkut_ctree_set_focus_row(ctree, node);
	}
}
예제 #19
0
파일: transfer.c 프로젝트: GNOME/gftp
static void
create_transfer (gftp_transfer * tdata)
{
  if (tdata->fromreq->stopable)
    return;

  if (GFTP_IS_SAME_HOST_START_TRANS ((gftp_window_data *) tdata->fromwdata,
                                     tdata->fromreq))
    {
      gftp_swap_socks (tdata->fromreq, 
                       ((gftp_window_data *) tdata->fromwdata)->request);
      update_window (tdata->fromwdata);
    }

  if (GFTP_IS_SAME_HOST_START_TRANS ((gftp_window_data *) tdata->towdata,
                                     tdata->toreq))
    {
      gftp_swap_socks (tdata->toreq, 
                       ((gftp_window_data *) tdata->towdata)->request);
      update_window (tdata->towdata);
    }

  num_transfers_in_progress++;
  tdata->started = 1;
  tdata->stalled = 1;
  gtk_ctree_node_set_text (GTK_CTREE (dlwdw), tdata->user_data, 1,
                           _("Connecting..."));

  if (tdata->thread_id == NULL)
    tdata->thread_id = g_malloc0 (sizeof (pthread_t));

  pthread_create (tdata->thread_id, NULL, _gftpui_transfer_files, tdata);
}
예제 #20
0
void delete_selected(gint button_number)
{
    struct site *tmp, *tmp2;
    extern GtkCTree *the_tree;
    extern GtkCTreeNode *current_site_node;
    extern gboolean rcfile_saved;

    if (button_number != GNOME_YES)
	return;
    if ((selected_site != NULL) && (all_sites != NULL)) {
	if (strcmp(all_sites->name, selected_site->name) == 0) {
	    all_sites = all_sites->next;
	} else {
	    tmp = find_prev_site(selected_site);
	    if (tmp->next != NULL) {
		tmp2 = tmp->next;
		tmp->next = tmp2->next;
	    }
	}
	gtk_ctree_remove_node(GTK_CTREE(the_tree),
			      GTK_CTREE_NODE(current_site_node));
	selected_site = NULL;
	current_site_node = NULL;
    } else {
	gnome_error_dialog("I've detected no site is selected, but one should be selected in order to get here. Oh dear.");
    }
    clear_main_area();
    rcfile_saved = false;
}
예제 #21
0
파일: ctree.c 프로젝트: amery/clip-itk
int
clip_GTK_CTREENODEGETPIXMAP(ClipMachine * cm)
{
	C_widget    *cctree = _fetch_cw_arg(cm);
	C_object     *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	gint         column = _clip_parni(cm,3);
	GdkPixmap *pixmap;
	GdkBitmap *mask;
	C_widget *cpixmap;
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	CHECKOPT(3,NUMERIC_t);
	if (_clip_parinfo(cm,3)==UNDEF_t) column = 1;
	if (gtk_ctree_node_get_pixmap(GTK_CTREE(cctree->widget),
			GTK_CTREE_NODE(cnode->object),column-1,&pixmap,&mask))
	{
		if (pixmap)
		{
			cpixmap = _list_get_cwidget_by_data(cm,pixmap);
			if (!cpixmap) cpixmap = _register_widget(cm,gtk_pixmap_new(pixmap,mask),NULL);
			if (cpixmap) _clip_mclone(cm,RETPTR(cm),&cpixmap->obj);
		}
	}
	return 0;
err:
	return 1;
}
예제 #22
0
파일: ctree.c 프로젝트: amery/clip-itk
/* Set the pixmap in a node. */
int
clip_GTK_CTREENODESETPIXTEXT(ClipMachine * cm)
{
	C_widget   *cctree = _fetch_cw_arg(cm);
	C_object    *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	gint        column = _clip_parni(cm,3);
	gchar        *text = _clip_parc(cm,4);
	gint       spacing = _clip_parni(cm,5);
	C_widget  *cpixmap = _fetch_cwidget(cm,_clip_spar(cm,6));
	GdkPixmap *pixmap=NULL; GdkBitmap *mask=NULL;
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	CHECKOPT(3,NUMERIC_t); CHECKOPT(4,CHARACTER_t); CHECKOPT(5,NUMERIC_t);
	CHECKOPT2(6,MAP_t,NUMERIC_t); CHECKCWIDOPT(cpixmap,GTK_IS_PIXMAP);
	if (_clip_parinfo(cm,3)==UNDEF_t) column = 1;
	if (_clip_parinfo(cm,4)==UNDEF_t) text = "";
	if (cpixmap)
	{
		pixmap = GTK_PIXMAP(cpixmap->widget)->pixmap;
		mask = GTK_PIXMAP(cpixmap->widget)->mask;
	}
	LOCALE_TO_UTF(text);
	gtk_ctree_node_set_pixtext(GTK_CTREE(cctree->widget),
			GTK_CTREE_NODE(cnode->object), column-1,
			text,spacing,pixmap,mask);
	FREE_TEXT(text);
	return 0;
err:
	return 1;
}
예제 #23
0
/*
 * Finalise hierarchical tree.
 */
static void
gdisp_finaliseHierarchicalTree ( Kernel_T  *kernel,
				 GtkWidget *cTree )
{

  guint optimalWidth = 0;

  /*
   * Change tree global aspect.
   */
  gtk_clist_set_row_height(GTK_CLIST(cTree), /* CLIST, and not CTREE !! */
			   15);

  gtk_ctree_set_indent(GTK_CTREE(cTree),
		       16);

  /*
   * Compute first column optimal length.
   */
  optimalWidth = gtk_clist_optimal_column_width(GTK_CLIST(cTree),
						0 /* first column */);
  gtk_clist_set_column_width(GTK_CLIST(cTree),
			     0, /* first column */
			     optimalWidth);

}
예제 #24
0
static void
selected_row_changed(GtkCTree *ctree)
{
	int row;
	
	if (selected_record) {
		search_gui_unref_record(selected_record);
		selected_record = NULL;
	}

	row = clist_get_cursor_row(GTK_CLIST(ctree));
	if (row >= 0) {
		GtkCTreeNode *node;

		node = gtk_ctree_node_nth(GTK_CTREE(ctree), row);
		selected_record = search_gui_get_record(ctree, GTK_CTREE_NODE(node));
		if (selected_record) {
			search_gui_ref_record(selected_record);
		}
	}

	if (row_selected_ev) {
		cq_resched(row_selected_ev, ROW_SELECT_TIMEOUT);
	} else {
		row_selected_ev = cq_main_insert(ROW_SELECT_TIMEOUT,
							row_selected_expire, NULL);
	}
}
예제 #25
0
void ShowPlayList( void )
{
 if ( PlayList ) gtkActive( PlayList );
  else PlayList=create_PlayList();

 if ( old_path && *old_path )
  {
   char         * currentdir = strdup( old_path );
   char         * tpath,* pos;
   GtkCTreeNode * node,* nextnode;
   gboolean       leaf;
   tpath=strdup( "/" );
   pos=strtok( currentdir,"/" );
   node=gtk_ctree_find_by_row_data_custom( GTK_CTREE( CTDirTree ),NULL,"/",compare_func );
   do
    {
     char * tpathnew = g_strconcat( tpath,pos,"/",NULL );
     free( tpath ); tpath=tpathnew;
     nextnode=gtk_ctree_find_by_row_data_custom( GTK_CTREE( CTDirTree ),node,tpath,compare_func );
     if ( !nextnode ) break;
     node=nextnode;
     pos=strtok( NULL,"/" );
     gtk_ctree_get_node_info( GTK_CTREE( CTDirTree ),node,NULL,NULL,NULL,NULL,NULL,NULL,&leaf,NULL );
     if ( !leaf && pos ) gtk_ctree_expand( GTK_CTREE( CTDirTree ),node );
      else
       {
        DirNodeType * DirNode;
        gtk_ctree_select( GTK_CTREE( CTDirTree ),node );
	DirNode=gtk_ctree_node_get_row_data( GTK_CTREE( CTDirTree ),node );
	current_path=DirNode->path;
        scan_dir( DirNode->path );
        if ( CLFileSelected ) free( CLFileSelected ); CLFileSelected=calloc( 1,NrOfEntrys * sizeof( int ) );
	break;
       }
    } while( pos );
   free( tpath );
   free( currentdir );
  }
  else gtk_ctree_select( GTK_CTREE( CTDirTree ),parent );

 gtk_clist_freeze( GTK_CLIST( CLSelected ) );
 gtk_clist_clear( GTK_CLIST( CLSelected ) );
 if ( plList )
  {
   plItem * next = plList;
   while ( next || next->next )
    {
     char * text[1][3]; text[0][2]="";
     text[0][0]=next->name;
     text[0][1]=next->path;
     gtk_clist_append( GTK_CLIST( CLSelected ),text[0] );
     NrOfSelected++;
     if ( next->next ) next=next->next; else break;
    }
   CLListSelected=calloc( 1,NrOfSelected * sizeof( int ) );
  }
 gtk_clist_thaw( GTK_CLIST( CLSelected ) );

 gtk_widget_show( PlayList );
}
예제 #26
0
파일: dirtree.c 프로젝트: Explorer09/fsv
/* Recursively collapses the directory tree entry of the given directory */
void
dirtree_entry_collapse_recursive( GNode *dnode )
{
	g_assert( NODE_IS_DIR(dnode) );

	block_colexp_handlers( );
	gtk_ctree_collapse_recursive( GTK_CTREE(dir_ctree_w), DIR_NODE_DESC(dnode)->ctnode );
	unblock_colexp_handlers( );
}
예제 #27
0
파일: ctree.c 프로젝트: amery/clip-itk
/* Set the style of a row. */
int
clip_GTK_CTREENODESETROWSTYLE (ClipMachine *cm)
{
	C_widget   *cctree = _fetch_cw_arg(cm);
	C_object    *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	ClipVar    *mstyle = _clip_spar(cm,3);
	GtkStyle *style;
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	CHECKARG(3,MAP_t);
	style = gtk_ctree_node_get_row_style (GTK_CTREE(cctree->widget),
		GTK_CTREE_NODE(cnode->object));
	_map_to_style(cm, mstyle, style);
	gtk_ctree_node_set_row_style (GTK_CTREE(cctree->widget),
		GTK_CTREE_NODE(cnode->object), style);
	return 0;
err:
	return 1;
}
예제 #28
0
파일: xqf-ui.c 프로젝트: IR4T4/xqf
GtkWidget *create_source_ctree (GtkWidget *scrollwin) {
	char *titles[1] = { _("Source") };
	GtkWidget *ctree;

/*	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
*/
	ctree = gtk_ctree_new_with_titles (1, 0, titles);
	gtk_container_add (GTK_CONTAINER (scrollwin), ctree);

	gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_EXTENDED);

	gtk_ctree_set_line_style (GTK_CTREE (ctree), GTK_CTREE_LINES_NONE);
	gtk_ctree_set_expander_style (GTK_CTREE (ctree), GTK_CTREE_EXPANDER_TRIANGLE);
	gtk_ctree_set_indent (GTK_CTREE (ctree), 10);

	fill_source_ctree (ctree);

	return ctree;
}
예제 #29
0
파일: dirbrowser.c 프로젝트: GPDP2/mupen64
static void select_row_cb(GtkWidget * widget, gint row, gint column, GdkEventButton * bevent, gpointer data)
{
    DirNode *dirnode;
    GtkCTreeNode *node;
    void (*handler) (gchar *);

    if (bevent)
    {
        if (bevent->type == GDK_2BUTTON_PRESS)
        {
            node = gtk_ctree_node_nth(GTK_CTREE(widget), row);
            dirnode = gtk_ctree_node_get_row_data(GTK_CTREE(widget), node);
            handler = (void (*)(gchar *)) gtk_object_get_user_data(GTK_OBJECT(widget));
            if (handler)
                handler(dirnode->path);
        }
    }

}
예제 #30
0
파일: xqf-ui.c 프로젝트: IR4T4/xqf
void source_ctree_delete_master (GtkWidget *ctree, struct master *m) {
	GtkCTreeNode *node;
	struct master *group;

	node = gtk_ctree_find_by_row_data (GTK_CTREE (ctree), NULL, m);
	if (!node)
		return;

	gtk_ctree_remove_node (GTK_CTREE (ctree), node);

	/* Remove empty master group from the tree */

	if (m->type != UNKNOWN_SERVER) {
		group = (struct master *) g_slist_nth_data (master_groups, m->type);
		if (group && (group->masters == NULL || (g_slist_length (group->masters) == 1 && group->masters->data == m))) {
			source_ctree_remove_master_group (ctree, group);
		}
	}
}