Hi James,

You're right it does segfault, I didn't notice.

I've had that before but I can't remember why. I'll look into it. Anyone else any ideas?

Regards

Steve.


On 30/01/15 20:59, James Lynes wrote:
Steve:

The exit(0) seems to be causing a segmentation fault. Any Ideas?

Latest version of the code is attached.

Thanks,
James


On Thu, Jan 29, 2015 at 4:29 PM, James Lynes <jmlyne...@gmail.com <mailto:jmlyne...@gmail.com>> wrote:

    Steve:

    I believe I looked at Glade a couple of years ago. Seems it kept
    crashing on me so I just went back to the old manual method.

    Thanks for the sample code.

    James


    On Thu, Jan 29, 2015 at 12:28 PM, Steve Cookson - gmail
    <steveco.1...@gmail.com <mailto:steveco.1...@gmail.com>> wrote:

        Hi James,

        I've replied to the list as well because I feel it needs a bit
        of loving!

        On 28/01/15 18:23, James Lynes wrote:

            Hi Steve:

            How's your project rollout going?

        Very kind of you to ask.  The launch went very well, since
        then we have been dealing with the manufacturer and we are
        working to a delivery of the first batch to Brazil by the end
        of March. Our Brazilian salesman is confident that he will
        sell all the first batch without too much difficulty.

            What's the accepted method to shutdown an application?

            I can use die, but there must be a WX call that should be
            used. I don't want to leave a frame open on the screen
            that has to be closed manually.

            Example using die is attached. (Wrapper around a command
            line application)


        The short answer to your question is probably "exit(0);"
        called from an exit button.

        However, the longer answer is did you ever see wxGlade?

        I don't know whether wxGlade was ever converted to 3.0.x, but
        it did work on 2.8 and I thought 2.9. It's a wonderful way to
        get started with all the Wx paradigms.  I used it extensively
        at the beginning.

        I re-wrote the OnInit subroutine as below.  It uses
        Wx::BoxSizer and Wx::Events, both of which will help your
        application.  I also used Wx::FilePickerCtrl as a control to
        get the .pdf file.

        Have fun with it.

        Best regards

        Steve.


        sub OnInit {

            my $parent  = shift;


            my $frame = Wx::Frame->new(undef, wxID_ANY, "",
        wxDefaultPosition, wxDefaultSize );

            $parent->SetTopWindow($frame);

            #Create controls
            # Fields
            my $pdfLabel=Wx::StaticText->new($frame, wxID_ANY,"PDF
        file", wxDefaultPosition, wxDefaultSize);
            my $pdfFilePicker=Wx::FilePickerCtrl->new($frame,
        wxID_ANY, "", "Pick a folder","*.pdf",wxDefaultPosition,
        [200,-1],
        wxDIRP_DIR_MUST_EXIST|wxDIRP_CHANGE_DIR|wxDIRP_USE_TEXTCTRL);
            $pdfFilePicker->SetPath("/home/image/");
            my $cropLabel=Wx::StaticText->new($frame, wxID_ANY,"crop
        string", wxDefaultPosition, wxDefaultSize);
            my $cropStringText=Wx::TextCtrl->new($frame,
        wxID_ANY,"crop string", wxDefaultPosition, [200,-1]);
            # Buttons
            my $okButton = Wx::Button->new($frame, wxID_OK, "",
        wxDefaultPosition, wxDefaultSize);
            my $cancelButton = Wx::Button->new($frame, wxID_CANCEL,
        "", wxDefaultPosition, wxDefaultSize);

            # Create sizers.
            my $verticalSizerFrame = Wx::BoxSizer->new(wxVERTICAL);
            $frame->SetSizer($verticalSizerFrame);
            my $verticalSizerControls = Wx::BoxSizer->new(wxVERTICAL);
            my $horizontalSizerButtons = Wx::BoxSizer->new(wxHORIZONTAL);
            # Lay 'em out.
            $verticalSizerFrame->Add($verticalSizerControls,0,0,0);
            $verticalSizerFrame->Add($horizontalSizerButtons,0,0,0);

            $verticalSizerControls->Add($pdfLabel,0,0,0);
            $verticalSizerControls->Add($pdfFilePicker,0,0,0);
            $verticalSizerControls->Add($cropLabel,0,0,0);
            $verticalSizerControls->Add($cropStringText,0,0,0);

            $horizontalSizerButtons->Add($okButton,0,0,0);
            $horizontalSizerButtons->Add($cancelButton,0,0,0);

            # Event handlers
            Wx::Event::EVT_BUTTON($frame, $okButton, sub {
            my ($self, $event) = @_;
                exit (0);
            });

            $verticalSizerFrame->Layout();

            $frame->Show(1);

        }


            Thanks,
            James





Reply via email to