- mefistofeles: Az elhízás nem akaratgyengeség!
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- potyautas: A teljesség igénye 4.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Bestx: Budget DIY eGPU USB4/Thunderbolt csatlakozással – egy mining VGA új élete.
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Mr Dini: Mindent a StreamSharkról!
-
LOGOUT

Új hozzászólás Aktív témák
-
Forest_roby
őstag
Hi! ha ráérnétek ránéznétek erre a kódrészletre: /elég nagy/
void
on_save_xml_button_clicked (GtkButton *button,
gpointer user_data)
{
g_message(''%s(): start: '', __func__);
//az xml dokument elõállításához
xmlDocPtr document;
xmlNodePtr styles;
xmlNodePtr style;
xmlNodePtr text;
xmlNodePtr property;
GtkWidget *window;
GtkTextView *text_view;
GtkTextBuffer *text_buffer;
GtkTextIter start_line;
GtkTextIter end_line;
gchar *the_text;
GSList *activ_tags;
GSList *p;
gchar *name;
gchar *font;
//file keresõ ablakhoz
GtkWidget *save_file;
gchar *file_name;
int response;
//fájl név
window = GTK_WIDGET(lookup_widget(GTK_WIDGET(button), ''myeditor_window''));
file_name = (gchar*)g_object_get_data(G_OBJECT(window),''file_name'');
if (file_name == NULL){
save_file = gtk_file_chooser_dialog_new(''Save file'', NULL,
GTK_FILE_CHOOSER_ACTION_SAVE,
GTK_STOCK_SAVE, GTK_RESPONSE_OK,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
NULL);
response = gtk_dialog_run(GTK_DIALOG(save_file));
if (response == GTK_RESPONSE_OK){
file_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(save_file));
g_object_set_data(G_OBJECT(window), ''file_name'', file_name);
g_message(''%s(): file name is: %s'', __func__, file_name);
}else if (response == GTK_RESPONSE_CANCEL){
gtk_widget_destroy(save_file);
return;
}
gtk_widget_destroy(save_file);
}
//fájl név megvan
//xml dokumentum elõállítása
document = xmlNewDoc(''1.0''); //új dokumentum a memóriában
document -> children = xmlNewDocNode(document, NULL, ''doc'', NULL); //gyökérelem létrehozása
styles = xmlNewChild(document -> children, NULL, ''styles'', NULL); //stílusok
text = xmlNewChild(document -> children, NULL, ''text'', NULL); //szöveg - tulajdonságokkal
text_view = GTK_TEXT_VIEW(lookup_widget(window, ''myeditor_textview''));
text_buffer = gtk_text_view_get_buffer(text_view);
gtk_text_buffer_get_start_iter(text_buffer, &start_line);
end_line = start_line;
gint counter = 1;
while (!gtk_text_iter_is_end(&end_line)){
gtk_text_iter_forward_to_line_end(&end_line);
the_text = gtk_text_buffer_get_text(text_buffer, &start_line, &end_line, TRUE);
/*if (activ_tags != NULL){
g_object_get(G_OBJECT(g_slist_nth_data(activ_tags, 0)), ''name'', &name, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(activ_tags, 0)), ''font'', &font, NULL);
}else{
name = ''Default'';
font = ''Arial Normal 8'';
}
//stílus
style = xmlNewChild(styles, NULL, ''style'', NULL);
xmlSetProp(style, ''name'', name);
xmlSetProp(style, ''font'', font);
//szöveg
property = xmlNewChild(text, NULL, ''proporty'', the_text);
xmlSetProp(property, ''style'', name);*/
/*******************************************************************************************/
activ_tags = gtk_text_iter_get_tags(&start_line);
gchar *n;
n=g_strdup_printf(''%d. style'', counter);
counter=counter+1;
style = xmlNewChild(styles, NULL, ''style'', NULL);
xmlSetProp(style, ''name'', n);
g_message(''ITT VAN! n:%s counter: %d'', n, counter);
for(p = gtk_text_iter_get_tags(&start_line); p != NULL; p = g_slist_next(p))
{
gchar *name;
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''name'', &name, NULL);
//g_message(''Tag neve: %s'', name);
if( strncmp(name, ''justify'', 7) == 0){
gchar *m;
m=g_strdup_printf(''%s'',name);
m = &m[8];
//g_message(''\t\tjustification:\t\t%s'', m);
xmlSetProp(style, ''justification'', m);
//g_free(m);
}else if( strncmp(name, ''foreground:'', 11) == 0){
gchar *m;
m=g_strdup_printf(''%s'',name);
m = &m[12];
//g_message(''\t\tforeground:\t\t%s'', m);
xmlSetProp(style, ''foreground'', m);
//g_free(m);
}else if( strncmp(name, ''background:'', 11) == 0){
gchar *m;
m=g_strdup_printf(''%s'',name);
m = &m[12];
//g_message(''\t\tbackground:\t\t%s'', m);
xmlSetProp(style, ''background'', m);
//g_free(m);
}else if( strncmp(name, ''indent:'', 7) == 0){
gint *ind;
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''indent'', &ind, NULL);
//g_message(''\t\tindent:\t\t\t%d'', ind);
xmlSetProp(style, ''indent'', ind);
}else if( strncmp(name, ''own:'', 4) == 0){
gchar *font;
gint *left_margin;
gint *right_margin;
gint *pixels_above_lines;
gint *pixels_below_lines;
gint *pixels_inside_wrap;
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''font'', &font, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''left-margin'', &left_margin, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''right-margin'', &right_margin, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''pixels-above-lines'', &pixels_above_lines, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''pixels-below-lines'', &pixels_below_lines, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''pixels-inside-wrap'', &pixels_inside_wrap, NULL);
//g_message(''\t\tfont:\t\t\t%s'', font);
xmlSetProp(style, ''font'', font);
//g_message(''\t\tleft-margin:\t\t%d'', left_margin);
xmlSetProp(style, ''left-margin'', left_margin);
//g_message(''\t\tright-margin:\t\t%d'', right_margin);
xmlSetProp(style, ''right-margin'', right_margin);
//g_message(''\t\tpixels-above-lines:\t%d'', pixels_above_lines);
xmlSetProp(style, ''pixels-above-lines'', pixels_above_lines);
//g_message(''\t\tpixels-below-lines:\t%d'', pixels_below_lines);
xmlSetProp(style, ''pixels-below-lines'', pixels_below_lines);
//g_message(''\t\tpixels-inside-wrap:\t%d'', pixels_inside_wrap);
xmlSetProp(style, ''pixels-inside-wrap'', pixels_inside_wrap);
}else{
g_message(''HA EZT AZ ÜZIT MEGLÁTOD, AKKOR VMI BAJ VAN!'');
g_message(''name: %s'', name);
}
}
/************************************************************************************/
//szöveg
property = xmlNewChild(text, NULL, ''proporty'', the_text);
xmlSetProp(property, ''style'', n);
g_free(n);
gtk_text_iter_forward_line(&start_line);
}
//xml dokumentum elõállítása - befejezve
//fájlba mentés
if (!xmlSaveFormatFileEnc(file_name, document, ''UTF-8'', 1)){//memóriában levó állomány mentése
g_error(''Error saving document: %m'');
}
//fájlba mentés - befejezve
}
Gomblenyomásra a szövegszerkesztőben lévő szöveg bekezdésenkénti ( soronkénti ) lementését végzi xml formátumba ( bekezdésenként léptet a stylusok miatt *minden bekezdéshez társít 1db stylust -nincs stylus átlapolódás bekezdéseken belül ill között. ).
Eléggé nagy a kód és nehezen találom meg a hibákat. Van amikor jól műxik, van amikor rosszúl és van amikor fagy -eléggé rendszertelenűl. Valszeg változó felszabadítási problémákból elég sok lesz, nem tom.
Légyszi segítsetek a hibákat kiszűrni, akinek kell a progi tesztelés miatt msn -en át tudom küldeni. ( linux alatt írtam )
Előre is köszi!
Forest
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Automata kávégépek
- mefistofeles: Az elhízás nem akaratgyengeség!
- Sorozatok
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Háztartási gépek
- Raspberry Pi
- Bittorrent topik
- Windows 7
- Steam, GOG, Epic Store, Humble Store, Xbox PC Game Pass, Origin Access, uPlay+, Apple Arcade felhasználók barátságos izgulós topikja
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- További aktív témák...
- Gamer PC - R5 5600X, RTX 3060ti és 16gb RAM + GARANCIA
- HIGH-END GAMER PC Ryzen 7 9800X3D / RTX 5080 16GB / 32GB DDR5 / 2TB NVMe - Beszámítás
- Lenovo Tab M11 / TB330FU
- SZUPER Akcióban Új Bontatlan Dyson V15 Origin 3 év gyártói garanciával Azonnal Átvehető
- Bontatlan Intel Core ULTRA 9 285K (24mag!) + hűtött VRM-es Z890 alaplap! GAR/SZÁMLA (a Te nevedre)!
- Geforce GTX 1050, 1050 Ti, 1060, 1650, 1660 - GT 1030 - Low profile is (LP)
- HIBÁTLAN iPhone 13 Pro Max 256GB Sierra Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS4224
- HIBÁTLAN iPhone 15 Pro 128GB Natural Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4538
- Bomba ár! Dell Latitude 5410 - i5-10GEN I 16GB I 256SSD I HDMI I 14" FHD I Cam I W11 I Garancia!
- MacBook Pro 14 2024 M4, 32 GB RAM, 1 TB SSD 27% Áfás
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


