| @@ -131,84 +131,72 @@ public: | |||||
| hashEntryBox.setColour (TextEditor::backgroundColourId, Colours::white.withAlpha (0.5f)); | hashEntryBox.setColour (TextEditor::backgroundColourId, Colours::white.withAlpha (0.5f)); | ||||
| hashEntryBox.setReturnKeyStartsNewLine (true); | hashEntryBox.setReturnKeyStartsNewLine (true); | ||||
| hashEntryBox.setText ("Type some text in this box and the resulting MD5 and SHA hashes will update below"); | |||||
| hashEntryBox.setText ("Type some text in this box and the resulting MD5, SHA and Whirlpool hashes will update below"); | |||||
| hashEntryBox.addListener (this); | hashEntryBox.addListener (this); | ||||
| hashLabel1.setText ("Text to Hash:", dontSendNotification); | hashLabel1.setText ("Text to Hash:", dontSendNotification); | ||||
| hashLabel2.setText ("MD5 Result:", dontSendNotification); | hashLabel2.setText ("MD5 Result:", dontSendNotification); | ||||
| hashLabel3.setText ("SHA Result:", dontSendNotification); | hashLabel3.setText ("SHA Result:", dontSendNotification); | ||||
| hashLabel4.setText ("Whirlpool Result:", dontSendNotification); | |||||
| hashLabel1.attachToComponent (&hashEntryBox, true); | hashLabel1.attachToComponent (&hashEntryBox, true); | ||||
| hashLabel2.attachToComponent (&md5Result, true); | hashLabel2.attachToComponent (&md5Result, true); | ||||
| hashLabel3.attachToComponent (&shaResult, true); | hashLabel3.attachToComponent (&shaResult, true); | ||||
| hashLabel4.attachToComponent (&whirlpoolResult, true); | |||||
| addAndMakeVisible (md5Result); | addAndMakeVisible (md5Result); | ||||
| addAndMakeVisible (shaResult); | addAndMakeVisible (shaResult); | ||||
| addAndMakeVisible (whirlpoolResult); | |||||
| updateHashes(); | updateHashes(); | ||||
| } | } | ||||
| void updateHashes() | void updateHashes() | ||||
| { | { | ||||
| updateMD5Result(); | |||||
| updateSHA256Result(); | |||||
| String text = hashEntryBox.getText(); | |||||
| updateMD5Result (text.toUTF8()); | |||||
| updateSHA256Result (text.toUTF8()); | |||||
| updateWhirlpoolResult (text.toUTF8()); | |||||
| } | } | ||||
| void updateMD5Result() | |||||
| void updateMD5Result (CharPointer_UTF8 text) | |||||
| { | { | ||||
| const MD5 md5 (hashEntryBox.getText().toUTF8()); | |||||
| md5Result.setText (md5.toHexString(), dontSendNotification); | |||||
| md5Result.setText (MD5 (text).toHexString(), dontSendNotification); | |||||
| } | } | ||||
| void updateSHA256Result() | |||||
| void updateSHA256Result (CharPointer_UTF8 text) | |||||
| { | { | ||||
| const SHA256 sha (hashEntryBox.getText().toUTF8()); | |||||
| shaResult.setText (SHA256 (text).toHexString(), dontSendNotification); | |||||
| } | |||||
| shaResult.setText (sha.toHexString(), dontSendNotification); | |||||
| void updateWhirlpoolResult (CharPointer_UTF8 text) | |||||
| { | |||||
| whirlpoolResult.setText (Whirlpool (text).toHexString(), dontSendNotification); | |||||
| } | } | ||||
| void resized() override | void resized() override | ||||
| { | { | ||||
| Rectangle<int> area (getLocalBounds()); | Rectangle<int> area (getLocalBounds()); | ||||
| hashGroup.setBounds (area); | hashGroup.setBounds (area); | ||||
| area.removeFromLeft (80); | |||||
| area.removeFromLeft (120); | |||||
| area.removeFromTop (10); | area.removeFromTop (10); | ||||
| area.reduce (5, 5); | area.reduce (5, 5); | ||||
| shaResult.setBounds (area.removeFromBottom (34).reduced (5)); | |||||
| md5Result.setBounds (area.removeFromBottom (34).reduced (5)); | |||||
| whirlpoolResult.setBounds (area.removeFromBottom (34)); | |||||
| shaResult.setBounds (area.removeFromBottom (34)); | |||||
| md5Result.setBounds (area.removeFromBottom (34)); | |||||
| hashEntryBox.setBounds (area.reduced (5)); | hashEntryBox.setBounds (area.reduced (5)); | ||||
| } | } | ||||
| private: | private: | ||||
| GroupComponent hashGroup; | GroupComponent hashGroup; | ||||
| TextEditor hashEntryBox; | TextEditor hashEntryBox; | ||||
| Label md5Result, shaResult; | |||||
| Label hashLabel1, hashLabel2, hashLabel3; | |||||
| void textEditorTextChanged (TextEditor& editor) override | |||||
| { | |||||
| if (&editor == &hashEntryBox) | |||||
| updateHashes(); | |||||
| } | |||||
| void textEditorReturnKeyPressed (TextEditor& editor) override | |||||
| { | |||||
| if (&editor == &hashEntryBox) | |||||
| updateHashes(); | |||||
| } | |||||
| Label md5Result, shaResult, whirlpoolResult; | |||||
| Label hashLabel1, hashLabel2, hashLabel3, hashLabel4; | |||||
| void textEditorEscapeKeyPressed (TextEditor& editor) override | |||||
| { | |||||
| if (&editor == &hashEntryBox) | |||||
| updateHashes(); | |||||
| } | |||||
| void textEditorFocusLost (TextEditor& editor) override | |||||
| { | |||||
| if (&editor == &hashEntryBox) | |||||
| updateHashes(); | |||||
| } | |||||
| void textEditorTextChanged (TextEditor&) override { updateHashes(); } | |||||
| void textEditorReturnKeyPressed (TextEditor&) override { updateHashes(); } | |||||
| void textEditorEscapeKeyPressed (TextEditor&) override { updateHashes(); } | |||||
| void textEditorFocusLost (TextEditor&) override { updateHashes(); } | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (HashesComponent) | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (HashesComponent) | ||||
| }; | }; | ||||