~pac72/ubuntu/lucid/ddd/devel

« back to all changes in this revision

Viewing changes to ddd/print.C

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Schepler
  • Date: 2004-07-22 03:49:37 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20040722034937-cysl08t1jvba4jrx
Tags: 1:3.3.9-3
USERINFO has been renamed to USERINFO.txt; adjust debian/rules code
to match, to get correct information on the About DDD dialog.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// $Id: print.C,v 1.54 2001/04/26 11:08:07 zeller Exp $ -*- C++ -*-
 
1
// $Id$ -*- C++ -*-
2
2
// Printing dialog
3
3
 
4
4
// Copyright (C) 1996-1998 Technische Universitaet Braunschweig, Germany.
28
28
// or send a mail to the DDD developers <ddd@gnu.org>.
29
29
 
30
30
char print_rcsid[] = 
31
 
    "$Id: print.C,v 1.54 2001/04/26 11:08:07 zeller Exp $";
32
 
 
33
 
#ifdef __GNUG__
34
 
#pragma implementation
35
 
#endif
 
31
    "$Id$";
36
32
 
37
33
#include "print.h"
38
34
 
64
60
#include <ctype.h>
65
61
#include <stdio.h>
66
62
#include <stdlib.h>
67
 
#include <iostream.h>
68
 
#include <fstream.h>
 
63
#include <iostream>
 
64
#include <fstream>
69
65
#include <string.h>             // strerror()
70
66
#include <errno.h>
71
67
#include <unistd.h>
135
131
    graphGC.printGC = &gc;
136
132
    graphGC.printSelectedNodesOnly = selectedOnly;
137
133
 
138
 
    ofstream os(filename.chars());
 
134
    std::ofstream os(filename.chars());
139
135
    if (os.bad())
140
136
    {
141
137
        FILE *fp = fopen(filename.chars(), "w");
192
188
    XtAppAddTimeOut(XtWidgetToApplicationContext(gdb_w), 0, unlinkPrintFile, 
193
189
                    XtPointer(client_data));
194
190
 
195
 
    if (output_buffer != "")
 
191
    if (!output_buffer.empty())
196
192
        set_status("");
197
193
}
198
194
 
205
201
        set_status(output_buffer.before('\n'));
206
202
        output_buffer = output_buffer.after('\n');
207
203
    }
208
 
    if (output_buffer != "")
 
204
    if (!output_buffer.empty())
209
205
        set_status(output_buffer);
210
206
}
211
207
 
213
209
static int print_to_printer(string command, PrintGC& gc, 
214
210
                            bool selectedOnly, bool displays)
215
211
{
216
 
    string tmpfile = tempfile();
 
212
    const string tmpfile = tempfile();
217
213
    int ret = print_to_file(tmpfile, gc, selectedOnly, displays);
218
214
    if (ret)
219
215
        return ret;
220
216
 
221
217
    StatusDelay delay(msg(tmpfile, displays, false));
222
218
 
223
 
    command = command + " " + tmpfile;
 
219
    command += " " + tmpfile;
224
220
 
225
221
    LiterateAgent *print_agent = 
226
222
        new LiterateAgent(XtWidgetToApplicationContext(gdb_w), command);
315
311
        XtFree(file);
316
312
 
317
313
        strip_trailing_space(f);
318
 
        if (f == "")
 
314
        if (f.empty())
319
315
            return;
320
316
 
321
317
        if (access(f.chars(), W_OK) || !is_regular_file(f) || override)
336
332
            confirm_overwrite_dialog = 
337
333
                verify(
338
334
                    XmCreateQuestionDialog(find_shell(w),
339
 
                                           CONST_CAST(char *,"confirm_overwrite_dialog"), 
 
335
                                           XMST("confirm_overwrite_dialog"), 
340
336
                                           ArgList(0), 0));
341
337
            Delay::register_shell(confirm_overwrite_dialog);
342
338
            XtAddCallback(confirm_overwrite_dialog, 
373
369
 
374
370
static void set_print_file_name(const string& name)
375
371
{
376
 
    XmTextFieldSetString(print_file_name_field, CONST_CAST(char*,name.chars()));
 
372
    XmTextFieldSetString(print_file_name_field, XMST(name.chars()));
377
373
 
378
374
    XmTextPosition last_pos = 
379
375
        XmTextFieldGetLastPosition(print_file_name_field);
407
403
static void SetSensitiveCB(Widget w, XtPointer client_data, XtPointer)
408
404
{
409
405
    if (XmToggleButtonGetState(w))
410
 
        set_sensitive(Widget(client_data), True);
 
406
        set_sensitive(Widget(client_data), true);
411
407
}
412
408
 
413
409
static void TakeFocusCB(Widget w, XtPointer client_data, XtPointer)
419
415
static void UnsetSensitiveCB(Widget w, XtPointer client_data, XtPointer)
420
416
{
421
417
    if (XmToggleButtonGetState(w))
422
 
        set_sensitive(Widget(client_data), False);
 
418
        set_sensitive(Widget(client_data), false);
423
419
}
424
420
 
425
421
static void SetPrintDisplaysCB(Widget w, XtPointer client_data, XtPointer)
443
439
    print_target = PrintTarget((int)(long)client_data);
444
440
}
445
441
 
446
 
static void set_paper_size_string(const string& s)
 
442
static void set_paper_size_string(const char *s)
447
443
{
448
444
    Widget text = XmSelectionBoxGetChild(paper_size_dialog, XmDIALOG_TEXT);
449
 
    XmTextSetString(text, CONST_CAST(char*,s.chars()));
 
445
    XmTextSetString(text, XMST(s));
450
446
 
451
447
    static string current_paper_size;
452
448
    current_paper_size = s;
523
519
{
524
520
    int points = 0;
525
521
 
526
 
    while (s != "")
 
522
    while (!s.empty())
527
523
    {
528
524
        const char *start = s.chars();
529
525
        char *tailptr;
664
660
        XmToggleButtonSetState(custom_paper_size, True, False);
665
661
    }
666
662
 
667
 
    set_paper_size_string(s);
 
663
    set_paper_size_string(s.chars());
668
664
 
669
665
    return true;
670
666
}
685
681
    }
686
682
 
687
683
    int ok = true;
688
 
    if (s != "")
 
684
    if (!s.empty())
689
685
        ok = set_paper_size(s);
690
686
 
691
687
    if (ok)
734
730
                               XtPointer call_data)
735
731
{
736
732
    string target = get_file(w, client_data, call_data);
737
 
    if (target != "")
 
733
    if (!target.empty())
738
734
    {
739
735
        set_print_file_name(target);
740
736
        XtUnmanageChild(w);
777
773
        XtSetArg(args[arg], XmNpattern, pattern.xmstring()); arg++;
778
774
        dialog = 
779
775
            verify(XmCreateFileSelectionDialog(find_shell(w), 
780
 
                                               CONST_CAST(char *,"browse_print"), 
 
776
                                               XMST("browse_print"), 
781
777
                                               args, arg));
782
778
 
783
779
        Delay::register_shell(dialog);
819
815
    XtSetArg(args[arg], XmNautoUnmanage, False); arg++;
820
816
    print_dialog = 
821
817
        verify(XmCreatePromptDialog(find_shell(parent),
822
 
                                    CONST_CAST(char *,"print"), 
 
818
                                    XMST("print"), 
823
819
                                    args, arg));
824
820
    Delay::register_shell(print_dialog);
825
821
 
994
990
    XtSetArg(args[arg], XmNautoUnmanage, False); arg++;
995
991
    paper_size_dialog = 
996
992
        verify(XmCreatePromptDialog(find_shell(parent), 
997
 
                                    CONST_CAST(char *,"paper_size_dialog"), 
 
993
                                    XMST("paper_size_dialog"), 
998
994
                                    args, arg));
999
995
    Delay::register_shell(paper_size_dialog);
1000
996
 
1033
1029
        XmToggleButtonSetState(a4_paper_size, True, True);
1034
1030
 
1035
1031
    string command = string(app_data.print_command) + " ";
1036
 
    XmTextFieldSetString(print_command_field, CONST_CAST(char*,command.chars()));
 
1032
    XmTextFieldSetString(print_command_field, XMST(command.chars()));
1037
1033
 
1038
1034
    // Gofer it!
1039
1035
    manage_and_raise(print_dialog);