コード例 #1
0
ファイル: debugwin.c プロジェクト: rasky/mame-rr
void on_reverse_activate(GtkWidget *win)
{
	win_i *info = get_win_i(win, WIN_TYPE_MEMORY);
	DView *memory = get_view(info, DVT_MEMORY);

	downcast<debug_view_memory *>(memory->view)->set_reverse(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "reverse"))));
}
コード例 #2
0
ファイル: banlist.c プロジェクト: CardinalSins/hexchat
static void
banlist_crop (GtkWidget * wid, banlist_info *banl)
{
	session *sess = banl->sess;
	GtkTreeSelection *select;
	GSList *list = NULL, *node;
	int num_sel;

	/* remember which bans are selected */
	select = gtk_tree_view_get_selection (get_view (sess));
	/* gtk_tree_selected_get_selected_rows() isn't present in gtk 2.0.x */
	gtk_tree_selection_selected_foreach (select, banlist_add_selected_cb,
	                                     &list);

	num_sel = g_slist_length (list);
	/* select all, then unselect those that we remembered */
	if (num_sel)
	{
		gtk_tree_selection_select_all (select);

		for (node = list; node; node = node->next)
			gtk_tree_selection_unselect_iter (select, node->data);

		g_slist_foreach (list, (GFunc)g_free, NULL);
		g_slist_free (list);

		banlist_unban (NULL, banl);
	} else
		fe_message (_("You must select some bans."), FE_MSG_ERROR);
}
コード例 #3
0
ファイル: debugwin.c プロジェクト: rasky/mame-rr
void
on_set_breakpoint_at_cursor_activate(GtkWidget *win)
{
	win_i *info = get_win_i(win, WIN_TYPE_ALL);
	DView *disasm = get_view(info, DVT_DISASSEMBLY);
	astring command;

	if (disasm->view->cursor_visible())
	{
		if (debug_cpu_get_visible_cpu(*info->machine) == disasm->view->source()->device())
		{
			offs_t address = downcast<debug_view_disasm *>(disasm->view)->selected_address();
			device_debug *cpuinfo = disasm->view->source()->device()->debug();
			device_debug::breakpoint *bp;
			INT32 bpindex = -1;

			/* first find an existing breakpoint at this address */
			for (bp = cpuinfo->breakpoint_first(); bp != NULL; bp = bp->next())
				if (address == bp->address())
				{
					bpindex = bp->index();
					break;
				}

			/* if it doesn't exist, add a new one */
			if (bpindex == -1)
				command.printf("bpset 0x%X", address);
			else
				command.printf("bpclear 0x%X", bpindex);
			debug_console_execute_command(*info->machine, command, 1);
		}
	}
}
コード例 #4
0
ファイル: itunes_vis.c プロジェクト: AaronDnz/xbmc
void ivis_start( ITunesVis* plugin )
{
  /* make sure we have a plugin and a visual handler */
  if ( !plugin || !plugin->imports.visual_handler )
    return;

  /* if we don't have an offscreen buffer, create one */
  if ( ! plugin->screen )
    plugin->screen = get_view( plugin->rect.right, plugin->rect.bottom );

  /* customize the show window message */
  memset( &plugin->visual_message.u.showWindowMessage, 0,
          sizeof(plugin->visual_message.u.showWindowMessage) );
  plugin->visual_message.u.showWindowMessage.GRAPHICS_DEVICE_NAME = plugin->screen;
  plugin->visual_message.u.showWindowMessage.drawRect             = plugin->rect;
  plugin->visual_message.u.showWindowMessage.options              = 0;
  plugin->visual_message.u.showWindowMessage.totalVisualizerRect  = plugin->rect;

  /* set our start time */
  plugin->start_time = ivis_current_time();

  /* send the show window message */
  CGLContextObj currentContext = CGLGetCurrentContext();
  plugin->imports.visual_handler( kVisualPluginEnableMessage, &( plugin->visual_message ),
                                  plugin->vis_ref );
  plugin->imports.visual_handler( kVisualPluginShowWindowMessage, &( plugin->visual_message ),
                                  plugin->vis_ref );
  plugin->imports.visual_handler( kVisualPluginUpdateMessage, &( plugin->visual_message ),
                                  plugin->vis_ref );
  plugin->gl_context = (void*)aglGetCurrentContext();
  CGLSetCurrentContext( currentContext );
}
コード例 #5
0
void DiagramWindow::new_scale(int percent) {
  double np = ((double) percent)/100.0;
  
  if (canvas->zoom() != np) {
    get_view()->set_zoom(np);
    sb_zoom->setValue(percent);
  }
}
コード例 #6
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
void on_dbpl_activate(GtkWidget *win)
{
	win_i *info = get_win_i(win, WIN_TYPE_MEMORY);
	DView *memory = get_view(info, DVT_MEMORY);

	debug_view_memory *memview = downcast<debug_view_memory *>(memory->view);
	memview->set_chunks_per_row(memview->chunks_per_row() - 1);
}
コード例 #7
0
QString DiagramWindow::copy_selected() const {
  QString warning;
  double zm  = canvas->zoom();
  
  if (zm != 1)
    get_view()->set_zoom(1);

  QString diagram_def;
  QTextOStream st(&diagram_def);
  
  indent0();
  get_view()->save(st, warning, TRUE);
  
  if (zm != 1)
    get_view()->set_zoom(zm);
  
  return diagram_def;
}
コード例 #8
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
void on_comments_activate(GtkWidget *win)
{
	win_i *info = get_win_i(win, WIN_TYPE_MAIN | WIN_TYPE_DISASM);
	DView *disasm = get_view(info, DVT_DISASSEMBLY);

	if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "comments")))) {
		downcast<debug_view_disasm *>(disasm->view)->set_right_column(DASM_RIGHTCOL_COMMENTS);
	}
}
コード例 #9
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
static void disasmwin_process_string(win_i *win, const char *str)
{
	win_i *dis = (win_i *) win;
	DView *disasm = get_view(dis, DVT_DISASSEMBLY);

	assert(dis->type == WIN_TYPE_DISASM);

	downcast<debug_view_disasm *>(disasm->view)->set_expression(str);
}
コード例 #10
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
void on_physical_addresses_group_changed(GtkWidget *win)
{
	win_i *info = get_win_i(win, WIN_TYPE_MEMORY);
	DView *memory = get_view(info, DVT_MEMORY);

	if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "physical_addresses")))) {
		downcast<debug_view_memory *>(memory->view)->set_physical(true);
	}
}
コード例 #11
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
static void memorywin_process_string(win_i *win, const char *str)
{
	win_i *mem = (win_i *) win;
	DView *memory = get_view(mem, DVT_MEMORY);

	assert(mem->type == WIN_TYPE_MEMORY);

	downcast<debug_view_memory *>(memory->view)->set_expression(str);
}
コード例 #12
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
void on_chunks_4_activate(GtkWidget *win)
{
	win_i *info = get_win_i(win, WIN_TYPE_MEMORY);
	DView *memory = get_view(info, DVT_MEMORY);

	if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "chunks_4")))) {
		downcast<debug_view_memory *>(memory->view)->set_bytes_per_chunk(4);
	}
}
コード例 #13
0
void DiagramWindow::save_session(QTextStream & st) {
  // can't access to the window position, even through geometry
  QString warning;
  
  st << "  ";
  ((BrowserNode *) browser_node)->save(st, TRUE, warning);
  st << "\n    " << width() << ' ' << height() << ' ';
  get_view()->save_session(st);
}
コード例 #14
0
void DiagramWindow::save(const char * ext, QString & warning,
			 BooL & is_new) const {
  double zm  = canvas->zoom();
  
  if (zm != 1)
    get_view()->set_zoom(1);

  QString diagram_def;
  QTextOStream st(&diagram_def);
  int current_indent = indent();
  
  indent0();
  get_view()->save(st, warning, FALSE);
  save_definition(browser_node->get_ident(), ext, diagram_def, is_new);
  indent(current_indent);
  
  if (zm != 1)
    get_view()->set_zoom(zm);
}
コード例 #15
0
ファイル: warlockview.c プロジェクト: sproctor/warlock-gtk
void
warlock_view_append (const char *name, const WString *w_string)
{
	WarlockView *view;

	view = get_view (name);
	if (view == NULL || view->shown == FALSE) {
		view = main_view;
	}
	view->buffer = w_string_append (view->buffer, w_string);
}
コード例 #16
0
void DiagramWindow::duplicate(int dest_id, const char * ext) const {
  QString warning;
  double zm  = canvas->zoom();
  
  if (zm != 1)
    get_view()->set_zoom(1);

  QString diagram_def;
  QTextOStream st(&diagram_def);
  int current_indent = indent();
  BooL is_new = TRUE;
  
  indent0();
  get_view()->save(st, warning, FALSE);
  save_definition(dest_id, ext, diagram_def, is_new);
  indent(current_indent);
  
  if (zm != 1)
    get_view()->set_zoom(zm);
}
コード例 #17
0
ファイル: cycle.c プロジェクト: cyisfor/ponyc
static void apply_delta(detector_t* d, view_t* view)
{
  deltamap_t* map = view->delta;

  if(map == NULL)
    return;

  // update refs with delta
  size_t i = HASHMAP_BEGIN;
  delta_t* delta;

  while((delta = ponyint_deltamap_next(map, &i)) != NULL)
  {
    // If rc is 0, we skip creating a view for the actor.
    pony_actor_t* actor = ponyint_delta_actor(delta);
    size_t rc = ponyint_delta_rc(delta);

    // If the referenced actor has never blocked, we will insert a view_t
    // that has blocked set to false.
    view_t* find = get_view(d, actor, rc > 0);

    if(find == NULL)
      continue;

    viewref_t key;
    key.view = find;

    if(rc > 0)
    {
      viewref_t* ref = ponyint_viewrefmap_get(&view->map, &key);

      if(ref == NULL)
      {
        ref = (viewref_t*)POOL_ALLOC(viewref_t);
        ref->view = find;
        ponyint_viewrefmap_put(&view->map, ref);
        find->view_rc++;
      }

      ref->rc = rc;
    } else {
      viewref_t* ref = ponyint_viewrefmap_remove(&view->map, &key);

      if(ref != NULL)
      {
        viewref_free(ref);
        view_free(find);
      }
    }
  }

  ponyint_deltamap_free(map);
  view->delta = NULL;
}
コード例 #18
0
ファイル: warlockview.c プロジェクト: sproctor/warlock-gtk
GtkWidget *
warlock_view_get_scrolled_window (const char *name)
{
	WarlockView *view;

	view = get_view (name);
	if (view == NULL)
		return NULL;
	
	return view->scrolled_window;
}
コード例 #19
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
static void disasmwin_cpu_changed(GtkComboBox *cpu_w, win_i *dis)
{
	astring title;
	DView *disasm = get_view(dis, DVT_DISASSEMBLY);

	disasm->view->set_source(*disasm->view->source_list().by_index(gtk_combo_box_get_active(cpu_w)));

	disasmview_update_checks(dis);

	const debug_view_source *source = disasm->view->source();
	title.printf("Disassembly: %s", source->name());
	gtk_window_set_title(GTK_WINDOW(dis->win), title);
}
コード例 #20
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
static void disasmview_update_checks(win_i *info)
{
	DView *disasm;
	assert(info != NULL);
	// assert(info->type == WIN_TYPE_MAIN);

	disasm = get_view(info, DVT_DISASSEMBLY);

	int rc = downcast<debug_view_disasm *>(disasm->view)->right_column();
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "raw_opcodes")), rc == DASM_RIGHTCOL_RAW);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "enc_opcodes")), rc == DASM_RIGHTCOL_ENCRYPTED);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "comments")), rc == DASM_RIGHTCOL_COMMENTS);
}
コード例 #21
0
ファイル: warlockview.c プロジェクト: sproctor/warlock-gtk
char *
warlock_view_get_text (const char *name)
{
	GtkTextIter start, end;
	WarlockView *view;

	view = get_view (name);
	gtk_text_buffer_get_start_iter (view->text_buffer, &start);
	gtk_text_buffer_get_end_iter (view->text_buffer, &end);

	return gtk_text_buffer_get_text (view->text_buffer, &start, &end,
			FALSE);
}
コード例 #22
0
ファイル: banlist.c プロジェクト: CarlGammaSagan/hexchat
static int
banlist_unban_inner (gpointer none, banlist_info *banl, int mode_num)
{
	session *sess = banl->sess;
	GtkTreeModel *model;
	GtkTreeSelection *sel;
	GtkTreeIter iter;
	char tbuf[2048];
	char **masks, *mask, *type;
	int num_sel, i;


	/* grab the list of selected items */
	model = GTK_TREE_MODEL (get_store (sess));
	sel = gtk_tree_view_get_selection (get_view (sess));

	if (!gtk_tree_model_get_iter_first (model, &iter))
		return 0;

	masks = g_malloc (sizeof (char *) * banl->line_ct);
	num_sel = 0;
	do
	{
		if (gtk_tree_selection_iter_is_selected (sel, &iter))
		{
			/* Get the mask part of this selected line */
			gtk_tree_model_get (model, &iter, TYPE_COLUMN, &type, MASK_COLUMN, &mask, -1);

			/* If it's the wrong type of mask, just continue */
			if (strcmp (_(modes[mode_num].type), type) != 0)
				continue;

			/* Otherwise add it to our array of mask pointers */
			masks[num_sel++] = g_strdup (mask);
			g_free (mask);
			g_free (type);
		}
	}
	while (gtk_tree_model_iter_next (model, &iter));

	/* and send to server */
	if (num_sel)
		send_channel_modes (sess, tbuf, masks, 0, num_sel, '-', modes[mode_num].letter, 0);

	/* now free everything */
	for (i=0; i < num_sel; i++)
		g_free (masks[i]);
	g_free (masks);

	return num_sel;
}
コード例 #23
0
ファイル: banlist.c プロジェクト: Babl0lka/XChat
static void
banlist_clear_cb (GtkDialog *dialog, gint response, gpointer sess)
{
	GtkTreeSelection *sel;

	gtk_widget_destroy (GTK_WIDGET (dialog));

	if (response == GTK_RESPONSE_OK)
	{
		sel = gtk_tree_view_get_selection (get_view (sess));
		gtk_tree_selection_select_all (sel);
		banlist_unban (NULL, sess);
	}
}
コード例 #24
0
void DiagramWindow::read_session(char * & st) {






  unsigned w = read_unsigned(st);
	
  resize(w, read_unsigned(st));

  new_scale(read_unsigned(st));
  get_view()->read_session(st);
}
コード例 #25
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
static void memorywin_update_checks(win_i *info)
{
	DView *memory = get_view(info, DVT_MEMORY);
	debug_view_memory *memview = downcast<debug_view_memory *>(memory->view);
	int bpc = memview->bytes_per_chunk();
	bool rev = memview->reverse();
	bool pa = memview->physical();

	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "chunks_1")), bpc == 1);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "chunks_2")), bpc == 2);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "chunks_4")), bpc == 4);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "physical_addresses")), pa);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "logical_addresses")), !pa);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(info->win, "reverse")), rev);
}
コード例 #26
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
static void debugmain_set_cpu(device_t *device)
{
	win_i *dmain = get_first_win_i(WIN_TYPE_MAIN);
	DView *dv;

	if (device != dmain->cpu)
	{
		astring title;

		dmain->cpu = device;

		// first set all the views to the new cpu
		// FIXME: Iterate over all views !
		dv = get_view(dmain, DVT_DISASSEMBLY);
		dv->view->set_source(*dv->view->source_list().match_device(device));
		dv = get_view(dmain, DVT_STATE);
		dv->view->set_source(*dv->view->source_list().match_device(device));

		// then update the caption
		title.printf("Debug: %s - %s '%s'", device->machine().system().name, device->name(), device->tag());
		gtk_window_set_title(GTK_WINDOW(dmain->win), title);
		disasmview_update_checks(dmain);
	}
}
コード例 #27
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
void on_run_to_cursor_activate(GtkWidget *win)
{
	win_i *info = get_win_i(win, WIN_TYPE_ALL);
	DView *disasm = get_view(info, DVT_DISASSEMBLY);
	astring command;

	if (disasm->view->cursor_visible())
	{
		if (debug_cpu_get_visible_cpu(*info->machine) == disasm->view->source()->device())
		{
			offs_t address = downcast<debug_view_disasm *>(disasm->view)->selected_address();
			command.printf("go 0x%X", address);
			debug_console_execute_command(*info->machine, command, 1);
		}
	}
}
コード例 #28
0
ファイル: warlockview.c プロジェクト: sproctor/warlock-gtk
void
warlock_view_end_line (const char *name)
{
	WarlockView *view;

	view = get_view (name);
	if (view == NULL || view->shown == FALSE) {
		view = main_view;
	}
        view->buffer = w_string_append_c (view->buffer, '\n');
	// new line to insert after the prompt
	if (prompting) {
		view->buffer = w_string_prepend_c (view->buffer, '\n');
	}
        view_append (view, view->buffer);
        w_string_free (view->buffer, TRUE);
        view->buffer = NULL;
}
コード例 #29
0
ファイル: debugwin.c プロジェクト: Ilgrim/MAMEHub
static void memorywin_zone_changed(GtkComboBox *zone_w, win_i *mem)
{
	int sel = gtk_combo_box_get_active(zone_w);
	astring title;
	DView *memory = get_view(mem, DVT_MEMORY);

	assert(mem->type == WIN_TYPE_MEMORY);

	// update the source
	memory->view->set_source(*memory->view->source_list().by_index(sel));

	// change the checkmarks in the menu
	memorywin_update_checks(mem);

	// update the window title
	const debug_view_source *source = memory->view->source();
	title.printf("Memory: %s", source->name());
	gtk_window_set_title(GTK_WINDOW(mem->win), title);

}
コード例 #30
0
ファイル: banlist.c プロジェクト: CarlGammaSagan/hexchat
static GtkListStore *
get_store (struct session *sess)
{
	return GTK_LIST_STORE (gtk_tree_view_get_model (get_view (sess)));
}