ultimatepp/uppdev/bigmailer/messages.cpp
cxl 3cd394812c Merge continued
git-svn-id: svn://ultimatepp.org/upp/trunk@10263 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2016-10-04 08:34:39 +00:00

209 lines
4.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <bigmailer/bigmailer.h>
// funcines del menú principal
void bigmailer::onNewMsg()
{
onCloseMsg() ;
messagePage.filename = ConfigFile("newMessage.qtf") ;
SetTitle() ;
if (tab.Get() != 1)
tab.Set(1) ;
theCfg.lastMsg = messagePage.filename ;
theCfg.Save() ;
}
void bigmailer::onOpenMsg()
{
FileSel fs;
fs.ActiveDir(ConfigFile("")) ;
fs.Type("list files", "*.msg") ;
if ( ! fs.ExecuteOpen(t_("Select a message file") ) )
return;
onCloseMsg() ;
messagePage.Load(fs.Get()) ;
SetTitle() ;
if (tab.Get() != 1)
tab.Set(1) ;
}
void bigmailer::onCloseMsg()
{
messagePage.editor.Clear() ;
messagePage.editor.ClearModify() ;
messagePage.filename = "" ;
}
void bigmailer::onPrintMsg()
{
//messagePage.editor.Print() ;
}
// clase para editar el mensaje
MessageEditor::MessageEditor()
{
CtrlLayout( *this ) ;
editor.ClearModify();
//editor.WhenRefreshBar= THISBACK(SetBar);
SetBar();
editor.WhenRefreshBar = THISBACK(SetBar);
btSave.WhenAction = THISBACK(Save) ;
edFrom.WhenAction = edSubject.WhenAction = THISBACK(CheckModify) ;
}
void MessageEditor::FillFields()
{
fields.Clear() ;
for (int i = 0; i < theDefList.fields.GetCount(); i++)
fields.Add(theDefList.fields[i]) ;
fields.WhenAction = THISBACK( OnInsertField ) ;
}
void MessageEditor::OnInsertField()
{
if (editor.IsReadOnly())
return ;
String sel = fields.GetData() ;
if (sel.IsEmpty())
return ;
sel = "[%" + sel + "%]" ;
editor.PasteText(AsRichText(sel.ToWString())) ;
}
void MessageEditor::CheckModify()
{
btSave.Enable( editor.IsModified() || edFrom.IsModified() || edSubject.IsModified() ) ;
}
void MessageEditor::MainBar(Bar& bar)
{
CheckModify() ;
//bar.Add(editor.IsModified(), "Save", CtrlImg::save(), THISBACK(Save))
// .Key(K_CTRL_S)
// .Help(t_("Save current document") );
bar.Add("SaveAs", CtrlImg::save_as(), THISBACK(SaveAs))
.Help(t_("Save current document with a new name" ) );
bar.Gap(2) ;
editor.CutTool(bar) ;
editor.CopyTool(bar);
editor.PasteTool(bar);
bar.Gap(2);
editor.FaceTool(bar);
bar.Gap(2) ;
editor.HeightTool(bar);
bar.Gap(2);
editor.BoldTool(bar);
editor.UnderlineTool(bar) ;
editor.ItalicTool(bar);
bar.Gap(2);
editor.InkTool(bar);
editor.PaperTool(bar);
bar.Gap(2) ;
editor.LeftTool(bar);
editor.CenterTool(bar);
editor.RightTool(bar);
editor.JustifyTool(bar);
bar.Gap(2) ;
editor.ObjectTool(bar) ;
bar.Gap(2) ;
bar.Add(true, fields, 100) ;
fields.HelpLine( t_("Insert field data in text") ) ;
}
void MessageEditor::SetBar()
{
toolbar.Set(THISBACK(MainBar));
}
void MessageEditor::Load(const String& name)
{
theMsg.Load(name) ;
edFrom.SetData(theMsg.from) ;
edSubject.SetData(theMsg.subject) ;
editor.SetQTF(theMsg.qtfBody) ;
/*
VectorMap<String,String> data = LoadIniFile(name + ".ini") ;
edFrom.SetData( data.Get("from") ) ; edFrom.ClearModify() ;
edSubject.SetData( data.Get("subject") ) ; edSubject.ClearModify() ;
String qtf, s ;
for (int i = 0; true; i++)
{
s = data.Get("body" + AsString(i), "") ;
if (s.IsEmpty())
break ;
qtf += s + "\r\n" ;
}
editor.SetQTF(qtf) ;
//editor.SetQTF(LoadFile(name));
*/
filename = name;
editor.ClearModify();
SetBar() ;
bigmailer::Mailer().SetTitle() ;
}
void MessageEditor::Save()
{
//if(!editor.IsModified() ) return;
if(filename.IsEmpty())
SaveAs();
else
{
theMsg.from = ~edFrom ;
theMsg.subject = ~edSubject ;
theMsg.qtfBody = editor.GetQTF() ;
theMsg.Save() ;
ClearModify();
}
SetBar() ;
bigmailer::Mailer().SetTitle() ;
}
void MessageEditor::SaveAs()
{
/*
String pngStr = LoadFile("/home/nico/dobleDorje4.png") ;
RichObject pngObj("PNG", pngStr) ;
RichPara p ;
RichPara::CharFormat f ;
p.Cat(pngObj,f) ;
//editor.ObjectTool(Bar& bar¸ dword key = 0)
RichObject CreateImageObject(const Image& img);
String AsQTF(const RichObject& obj);
*/
FileSel fs ;
fs.Type(t_("Message files"), "*.msg") ;
fs.ActiveDir(ConfigFile("")) ;
if(fs.ExecuteSaveAs())
{
filename = fs.Get();
Save() ;
}
SetBar() ;
bigmailer::Mailer().SetTitle() ;
}