Example #1
0
static gboolean maybe_block_tabedit_quit (tabwin_t *tabwin,
					  GtkWidget *parent)
{
    GtkNotebook *notebook = GTK_NOTEBOOK(tabwin->tabs);
    int np = gtk_notebook_get_n_pages(notebook);
    gboolean ret = FALSE;

    if (np > 1) {
	gchar *msg = g_strdup_printf(_("Editing %d scripts: really quit?"), np);
	gint resp;

	gtk_window_present(GTK_WINDOW(parent));
	resp = yes_no_dialog(_("gretl: script editor"), msg, parent);
	if (resp != GRETL_YES) {
	    ret = TRUE;
	}
	g_free(msg);
    } else if (np == 1) {
	GtkWidget *page = gtk_notebook_get_nth_page(notebook, 0);

	if (page != NULL) {
	    windata_t *vwin = g_object_get_data(G_OBJECT(page), "vwin");
    
	    if (vwin_content_changed(vwin)) {
		gtk_window_present(GTK_WINDOW(parent));
		ret = query_save_text(NULL, NULL, vwin);
	    }
	}
    }

    return ret;
}
Example #2
0
void filebrowser_backend_delete_file(FilebrowserBackend *filebackend, gchar *filename){
  if (!filebackend || !filename) return;
 gint button = yes_no_dialog (_("Question"), _("Are you sure you wish to delete this file?"));
  if (button == GTK_RESPONSE_YES){
	filename_delete_file(filename);
	filebrowser_backend_refresh_folder (filebackend);
  }
}
Example #3
0
static bool suggest_retreat(  t_battlefield& battlefield, bool side )
{
	bool				enemy_towns;
	bool				blocked_towns;
	t_combat_window*	combat_window = battlefield.get_combat_window();
	t_town*				town = combat_window->find_nearest_town( side, enemy_towns, blocked_towns );
	std::string	text;

	if (battlefield.can_surrender( side ))
	{
		int					cost = battlefield.calculate_surrender_cost( side );
		std::string			cost_text = format_string( "%i", cost );
		
		text = replace_keywords( k_text_suggest_surrender, 
								 "%surrender_cost", cost_text,
								 "%town_name", town->get_name() );
		if (yes_no_dialog( text, true ))
		{
			battlefield.surrender();
			return true;
		}
	
		text = k_text_suggest_retreat_instead;
	}
	else
	{
		if (!battlefield.can_retreat( side ))
			return false;
		text = k_text_suggest_retreat;
	}
	if (no_heroes( battlefield, side ))
		return false;

	text = replace_keywords( text,  "%town_name", town->get_name() );
	if (!yes_no_dialog( text, true ))
		return false;
	if (side)
		combat_window->force_combat_termination(k_result_defender_retreated);
	else
		combat_window->force_combat_termination(k_result_attacker_retreated);
	return true;
}
Example #4
0
// ------------------------------------------------------------------------
// sanctuary for armies - heal, resurrect, remain safe from harm
// ------------------------------------------------------------------------
void t_sanctuary::left_double_click( t_mouse_event const& event, 
							           t_adventure_frame* frame )
{
	if (get_owner_number() != m_map->get_player_number())
		return;
	if (empty())
		return;
	if (!yes_no_dialog( get_text( "exit" ) ))
		return;
	dump_visitors();
}
Example #5
0
void document_manager_document_reload(DocumentManager *docmg)
{
  gphpedit_debug(DEBUG_DOC_MANAGER);
  if (!docmg) return ;
  DocumentManagerDetails *docmgdet = DOCUMENT_MANAGER_GET_PRIVATE(docmg);
  gboolean saved;
  g_object_get(docmgdet->current_document, "saved", &saved, NULL);
  if (!saved) {
    gint result = yes_no_dialog (_("Question"), _("Are you sure you wish to reload the current file, losing your changes?"));
    if (result==GTK_RESPONSE_NO) return ;
  }
  const gchar *short_filename;
  g_object_get(docmgdet->current_document, "short_filename", &short_filename, NULL);
  gphpedit_statusbar_flash_message (GPHPEDIT_STATUSBAR(main_window.appbar),0,_("Reloading %s"), short_filename);
  documentable_reload(DOCUMENTABLE(docmgdet->current_document));
}
Example #6
0
void rename_file_ok(GtkFileChooser *file_selection)
{
    GString *filename;
    // Extract filename from the file chooser dialog
    gchar *fileuri=gtk_file_chooser_get_uri(file_selection);
    filename = g_string_new(fileuri);
    g_free(fileuri);
    GFile *file = get_gfile_from_filename(filename->str);
    if (g_file_query_exists (file,NULL)) {
        gint result = yes_no_dialog (_("gPHPEdit"), _("This file already exists, are you sure you want to overwrite it?"));
        if (result==GTK_RESPONSE_YES) {
            rename_file(filename);
        }
    } else {
        rename_file(filename);
    }
    g_object_unref(file);
    g_string_free(filename, TRUE);
}
Example #7
0
 void copy_async_lcb(GObject *source_object,GAsyncResult *res,gpointer user_data) {
 Tcopyfile *cf = user_data;
 gboolean done;
 GError *error=NULL;
 /* fill in the blanks */
 done = g_file_copy_finish(cf->curfile,res,&error);
 if (!done) {
    if (error->code == G_IO_ERROR_EXISTS) {
      gint retval;
      gchar *tmpstr, *dispname;
      GFileInfo *info =g_file_query_info (cf->curfile,"standard::display-name", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,NULL,NULL);
      dispname = (gchar *)g_file_info_get_display_name (info);
      tmpstr = g_strdup_printf(_("%s cannot be copied, it already exists, overwrite?"),dispname);
      retval = yes_no_dialog (_("Overwrite file?"), tmpstr);
      g_free(tmpstr);
      g_free(dispname);
      if (retval != -8) {
        g_file_copy_async(cf->curfile,cf->curdest,G_FILE_COPY_OVERWRITE,
            G_PRIORITY_LOW,NULL,
            NULL,NULL,
            copy_async_lcb,cf);
        return;
      }
    }else {
      g_print("ERROR copying file::%s\n",error->message);
      g_error_free (error);
    }
  }
  g_object_unref(cf->curfile);
  g_object_unref(cf->curdest);
  if (!copy_uris_process_queue(cf)) {
    filebrowser_backend_refresh_folder (cf->fbback);
    g_object_unref(cf->destdir);
    g_slice_free(Tcopyfile,cf);
  }
}
Example #8
0
// -----------------------------------------------------
// determine if AI should retreat
// -----------------------------------------------------
bool ai_check_retreat( t_battlefield& battlefield )
{
	bool side = battlefield.get_acting_side();

	if (battlefield.get_retreat_checked( side ))
		return false;
	if (!should_retreat( battlefield, side ))
		return false;
	battlefield.set_retreat_checked( side );

	t_player*			player = battlefield.get_player( side );
	t_combat_window*	combat_window = battlefield.get_combat_window();

	if (!player->is_computer())
		return suggest_retreat( battlefield, side );

	if (battlefield.can_surrender( side ))
	{
		int			cost = battlefield.calculate_surrender_cost( side );
		std::string	cost_text = format_string( "%i", cost );
		std::string	text;
		bool		enemy_towns;
		bool		blocked_towns;
		t_town*		town = combat_window->find_nearest_town( side, enemy_towns, blocked_towns );
		t_hero const*	enemy_hero;
		t_hero const*	hero;
		t_skill			skill;
		t_skill			enemy_skill;
		t_hero_keyword_replacer replacer;

		hero = get_charm( battlefield, side, skill );
		enemy_hero = get_charm( battlefield, !side, enemy_skill );
		replacer.add_keyword( "%surrender_cost", cost_text );
		replacer.add_keyword( "%town_name", town->get_name() );

		if (enemy_skill.level < skill.level)
		{
			replacer.add_hero( hero );
			replacer.add_skill( skill );
			text = replacer( k_text_force_surrender );
			ok_dialog( text );
			battlefield.surrender();
			return true;
		}

		text = replacer( k_text_request_surrender );
		if (yes_no_dialog( text, true ))
		{
			battlefield.surrender();
			return true;
		}
	}

	if (!battlefield.can_retreat( side ))
		return false;
	if (side)
		combat_window->force_combat_termination(k_result_defender_retreated);
	else
		combat_window->force_combat_termination(k_result_attacker_retreated);
	return true;
}