Steve:

Seems that $self->Close works.

Used system() instead of backticks. All working now.

Thanks for the help.
James
On Jan 31, 2015 2:25 PM, "Steve Cookson - gmail" <steveco.1...@gmail.com>
wrote:

>  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> 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> 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